Калькулятор дополнительного кода

Введите целое число со знаком или вставьте двоичный или шестнадцатеричный код и выберите разрядность. Калькулятор покажет дополнительный код, hex, значение со знаком и без знака, а для отрицательного числа — все шаги перевода из модуля.

Десятичное (-42), двоичное (11010110) или hex (D6); префиксы 0b и 0x тоже подходят.
Дополнительный код (двоичный)1101 0110
HexD6
Значение со знаком
-42
Значение без знака
214
Знаковый бит
1 (отрицательное)
Шаг 1: модуль числа в двоичном виде
0010 1010
Шаг 2: инвертировать все биты (обратный код)
1101 0101
Шаг 3: прибавить 1
1101 0110
Диапазон со знаком для этой разрядности
-128 … 127

Работает в браузере: всё, что вы вводите, никуда не отправляется.

Как пользоваться

  1. Введите значение. Для обычного числа вроде -42 выберите Десятичное, для разбора готового кода — Двоичное или Hex.
  2. Выберите разрядность: 8, 16, 32 или 64 бита. Короткий двоичный или hex-код дополняется нулями слева.
  3. Смотрите дополнительный код (по четыре бита в группе), hex и значение этого кода со знаком и без знака. Для отрицательного числа выводятся три шага из учебника.

Как устроен дополнительный код

В n битах отрицательное число x хранится как 2ⁿ + x. На практике это то же самое, что записать |x| в двоичном виде, инвертировать все биты и прибавить 1. Обратно — по старшему, знаковому биту: 0 — число равно своему двоичному значению, 1 — из значения без знака вычитается 2ⁿ.

Разрядность Диапазон со знаком −1 хранится как
8 бит −128 … 127 FF
16 бит −32 768 … 32 767 FFFF
32 бита −2 147 483 648 … 2 147 483 647 FFFFFFFF

Пример

Запишем −42 в 8 битах.

  • Шаг 1: 42 в двоичном виде — 0010 1010.
  • Шаг 2: обратный код — 1101 0101.
  • Шаг 3: плюс 1 — 1101 0110, в hex это D6.

Без знака код 1101 0110 равен 214, а 214 − 256 = −42 — значит, код действительно означает −42. Диапазон для 8 бит калькулятор выводит так: -128 … 127.

Частые ошибки

  • Не учитывают разрядность. −1 — это FF в 8 битах и FFFFFFFF в 32. Одни и те же биты при разной разрядности означают разные числа: 1111 1111 в байте — это −1, а в младшем байте 16-битного числа — 255.
  • Прибавляют 1 до инверсии. Порядок такой: сначала инвертировать, потом прибавить 1.
  • Ищут положительную пару для −128. У самого отрицательного числа нет положительного двойника той же разрядности: инверсия 1000 0000 плюс 1 снова даёт 1000 0000.

Частые вопросы

Как получить дополнительный код отрицательного числа?

Запишите модуль числа в двоичном виде нужной разрядности, инвертируйте все биты (получится обратный код) и прибавьте 1. Для −42 в 8 битах: 42 = 0010 1010, обратный код 1101 0101, плюс 1 — 1101 0110, в hex это D6.

Как перевести дополнительный код обратно в десятичное число?

Если старший бит 0, число положительное и равно обычному двоичному значению. Если 1 — число отрицательное: из значения без знака вычтите 2 в степени разрядности. 1101 0110 без знака — 214, 214 − 256 = −42.

Чем дополнительный код отличается от обратного?

Обратный код — это просто инверсия всех битов модуля, в нём два нуля (0000 0000 и 1111 1111). Дополнительный код — обратный плюс 1: ноль один, а сложение и вычитание работают одинаково для чисел со знаком и без. Поэтому процессоры хранят целые со знаком именно в дополнительном коде.

Какой диапазон помещается в 8, 16, 32 и 64 бита?

От −2^(n−1) до 2^(n−1) − 1: от −128 до 127 в байте, от −32 768 до 32 767 в 16 битах, около ±2,1 млрд в 32 битах и около ±9,2 × 10^18 в 64. Точный диапазон для выбранной разрядности калькулятор показывает строкой ниже.

Что будет, если ввести 200 при 8 битах?

200 не помещается в байт со знаком, но помещается в байт без знака, поэтому калькулятор считает его битовым кодом 1100 1000. Со знаком этот код означает −56. Числа меньше −128 и больше 255 не принимаются.

Ещё в разделе «Разработчикам»

Все инструменты раздела: Разработчикам ·Обновлено 7 ноября 2026 г.

Настройки конфиденциальности

Google Analytics показывает нам, какими инструментами пользуются и работают ли они. Он может ставить cookie. Ваш выбор сохраняется в этом браузере.