UTILS.
100% у браузері
🔢

Конвертер додаткового коду

Конвертуйте знакові цілі у/з двійкового й hex додаткового коду шириною 4, 8, 16, 32 чи 64 біти, з оберненим кодом та беззнаковою інтерпретацією.

Введіть число або бітовий шаблон вище.

Про цей інструмент

Конвертер додаткового коду кодує знакове ціле в його двійкове й шістнадцяткове подання додаткового коду шириною, яку ви обираєте (4, 8, 16, 32 чи 64 біти), і декодує двійковий чи hex-шаблон назад у знакове значення, яке він подає. Він використовує BigInt повсюдно, тож 64-бітні значення обробляються точно без втрати точності.

Для ширини N біт знаковий діапазон становить від −2^(N−1) до 2^(N−1)−1. Щоб закодувати десяткове d: якщо d невід'ємне, шаблон — це просто d; якщо d від'ємне, шаблон — це 2^N + d (еквівалентно, інвертуйте всі біти |d| і додайте 1). Інструмент виводить N-бітний двійковий із нульовим доповненням, N/4-цифровий hex, обернений код (побітове NOT) і беззнакову інтерпретацію тих самих бітів, а також позначає помилку переповнення, коли значення не вміщується в обрану ширину.

Щоб декодувати, вставте двійковий чи hex-шаблон, і інструмент зчитає його старший біт: якщо старший значущий біт установлено, значення — це pattern − 2^N (від'ємне), інакше це сам шаблон. Він завжди показує знакове й беззнакове зчитування пліч-о-пліч, що саме є неоднозначністю, яку додатковий код розв'язує на апаратному рівні. Увесь розрахунок локальний для вашого браузера.

Поширені запитання

Який діапазон для кожної ширини біта?
Ширина N біт подає знакові значення від −2^(N−1) до 2^(N−1)−1. Тож 8-біт охоплює від −128 до 127, 16-біт від −32768 до 32767, а 32-біт близько ±2.1 мільярда. Значення поза діапазоном викликають попередження про переповнення.
Як кодується від'ємне число?
Візьміть величину, інвертуйте кожен біт (обернений код) і додайте 1. Еквівалентно, шаблон дорівнює 2^N плюс від'ємне число. Наприклад, −1 у 8 бітах — це 11111111, а −42 — це 11010110.
Навіщо показувати ще й беззнакове значення?
Той самий бітовий шаблон має два зчитування: знакове (додатковий код) і беззнакове. Показ обох робить очевидним, що, наприклад, 8-бітний шаблон 11111111 — це −1 знакове, але 255 беззнакове — інтерпретація залежить від того, як апаратура його трактує.
Чи може він обробляти 64-бітні значення точно?
Так. Конвертер використовує арифметику довільної точності BigInt, тож 64-бітні шаблони та їхні знакові значення обчислюються точно без округлення, яке звичайні числа JavaScript вносили б понад 2^53.

Більше інструментів