Перейти до вмісту
100% локально

Конвертер доповнення до двох

Перетворіть ціле число в його представлення доповнення до двох з обраною шириною біта або декодуйте біти назад на число.

Введення

Конвертер доповнення до двох

Комп'ютери зберігають від'ємні числа за допомогою доповнення до двох, а не простого знака мінус — один і той же бітовий рисунок означає різне значення залежно від того, читається він як число зі знаком чи без знака. Цей інструмент перетворює в обох напрямках: введіть одне ціле число на рядок і отримайте відповідний бітовий рисунок доповнення до двох обраної ширини, або переключіть напрямок і вставте бітові рисунки, щоб отримати значення зі зміною представлення.

Виберіть ширину біта 8, 16, 32 або 64 — розміри, які реально використовують процесори та мови програмування для байта, short, int і long — та формат виводу у вигляді чистого двійкового або шістнадцяткового. Опція "Зі знаком" визначає, як інтерпретується значення: при увімкненні бітовий рисунок читається як доповнення до двох (тому верхній біт означає від'ємний) і число повинно відповідати діапазону зі знаком для цієї ширини; при вимкненні обидва напрямки обробляють однакові біти як звичайне ціле число без знака. Перемикання напрямку змінює кодування на декодування без втрати введених даних, тому перевірка туди-сюди перетворення — це один клік.

Переповнення — це місце, де доповнення до двох стає заплутаним, тому цей інструмент робить його видимим замість того, щоб його приховувати: число поза обраним діапазоном ширини все одно переповнюється так само, як це робить реальне обладнання — це переповнення є правильним рисунком доповнення до двох, а не помилкою — але задіяні рядки також позначені та враховані в резюме, тому випадкове переповнення в групі значень не залишається непоміченим. Відключіть цю позначку, якщо ви навмисне вивчаєте поведінку переповнення і не хочете, щоб вона була позначена.

Вставте весь стовпець чисел або бітових рисунків одночасно; кожен рядок перетворюється незалежно і порожні рядки зберігаються, тому результат залишається вирівняним зі введенням. Все працює локально у вашому браузері — ніщо, що ви вставляєте, включаючи фірмові константи або значення мікропрограми, ніколи не завантажується нікуди.

FAQ

Що таке доповнення до двох в одному реченні?
Це стандартний спосіб, яким комп'ютери представляють від'ємні цілі числа у двійковому вигляді: одні й ті ж біти, які означають велике додатне число при читанні без знака, означають від'ємне число, коли верхній біт читається як знак, і два представлення відрізняються рівно на 2^ширина.
Чому значення позначається як "за межами діапазону" замість простої помилки?
Переповнення — це правильна поведінка доповнення до двох для значення за межами діапазону, а не збій, тому інструмент все одно створює переповнені біти. Він позначає задіяні рядки, щоб випадкове переповнення в списку чисел було легко помітити; вимкніть опцію «Позначити значення за межами діапазону», якщо ви не хочете це сповіщення.
Що змінює опція "Зі знаком"?
При увімкненні декодування розглядає верхній біт як знак (стандартне доповнення до двох) і кодування вимагає, щоб число відповідало діапазону зі знаком, наприклад -128..127 при 8 бітах. При вимкненні одні й ті ж біти читаються як звичайне ціле число без знака від 0 до 2^ширина - 1.
Чи можу я перетворити весь список чисел одночасно?
Так. Вставте одне число (або один бітовий рисунок при декодуванні) на рядок і кожен рядок перетворюється незалежно, в тому ж порядку, із збереженням порожніх рядків.
Чи завантажуються мої дані десь?
Ні. Перетворення повністю відбувається у вашому браузері — ніщо, що ви введете або вставите, ніколи не надсилається на сервер.