Дополнительный код

Введите число со знаком или биты числа, чтобы увидеть шаблон, который хранит компьютер. Рядом показаны обратный и прямой код, так что три системы легко сравнить.

Бесплатно Работает в браузере Проверено вторник, 10 ноября 2026 г.

Число со знаком, например -5, или биты числа в шестнадцатеричной или двоичной записи, например FB или 11111011.

Записано как

Результат

Биты дополнительного кода — Биты, которые занимает число в этой разрядности, группами по четыре.
Шестнадцатеричная запись —
Значение как число со знаком — Число, которое означают эти биты в дополнительном коде.
Значение как беззнаковое число —
Диапазон для этой разрядности —
Проверка — Показывает, помещается ли число в эту разрядность.
Сравнение форм

Этот инструмент работает в вашем браузере. То, что вы вводите, нам не отправляется.

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

  1. Введите число в поле Число или биты. Для битов выберите шестнадцатеричную или двоичную запись в поле Записано как.
  2. Выберите Разрядность: число бит, которые хранит компьютер, 8, 16, 32 или 64.
  3. Прочитайте Биты дополнительного кода для хранимого шаблона и Сравнение форм для двух других систем.
  4. Если Проверка говорит, что число не помещается, показанные биты — это то, что компьютер сохранил бы вместо него.

Как хранится отрицательное число

Компьютер хранит целое число со знаком в фиксированном количестве бит. В дополнительном коде старший бит означает −2^(n−1), а остальные биты складываются обычным образом. Чтобы записать −5 в 8 битах, запишите 5 как 00000101, инвертируйте каждый бит и прибавьте 1: 11111010 + 1 = 11111011.

−5  →  00000101  →  11111010  →  11111011 (FB в шестнадцатеричной записи)

Обратный и прямой код

  • Обратный код инвертирует каждый бит модуля: −5 — это 11111010.
  • Прямой код сохраняет модуль и ставит старший бит как знак: −5 — это 10000101.
  • У обоих есть два нуля. Все единицы в обратном коде и один установленный знаковый бит в прямом — это −0.
  • У дополнительного кода один ноль и на одно отрицательное значение больше, чем положительных. Это система, которую используют большинство процессоров для целых чисел.

Диапазон и переполнение

При n битах диапазон дополнительного кода — от −2^(n−1) до 2^(n−1) − 1: от −128 до 127 для 8 бит и от −2 147 483 648 до 2 147 483 647 для 32 бит. Значение вне диапазона оборачивается: 200 требует восьми бит и читается как −56, потому что 11001000 — это −56 в дополнительном коде.

Чего инструмент не охватывает

  • Арифметику: инструмент показывает, как хранится число, а не результат сложения или умножения двух чисел.
  • Десятичные дроби и числа с плавающей точкой, у которых свой формат: см. конвертер IEEE 754.
  • Языки, которые при переполнении выдают ошибку вместо оборачивания. Инструмент показывает результат оборачивания и помечает его.

Пример: −5 в 8 битах

Введите −5, выбрав в поле Записано как значение «Десятичное (со знаком)», а в поле Разрядность — 8 бит. Шаблон дополнительного кода — 11111011, это FB в шестнадцатеричной записи и 251 как беззнаковое число.

Тот же −5 в двух других системах: обратный код — 11111010, прямой код — 10000101.

Система Биты Hex Значение
Дополнительный код 1111 1011 FB -5
Обратный код 1111 1010 FA -5
Прямой код 1000 0101 85 -5
Беззнаковое 1111 1011 FB 251

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

Почему компьютеры используют дополнительный код, а не знак минус?

Знак минус потребовал бы собственного правила в каждой схеме сложения. В дополнительном коде сложение и вычитание работают одинаково для отрицательных и положительных чисел, и ноль там один.

Почему отрицательный диапазон на одно значение больше положительного?

Ноль занимает один из 2^n шаблонов, поэтому положительные значения идут от 1 до 2^(n−1) − 1, а отрицательные — до −2^(n−1). В 8 битах лишнее значение — это −128, у которого нет положительной пары.

Что означает переполнение на этой странице?

Число требует больше бит, чем есть в разрядности. Страница показывает биты, которые поместились бы в разрядность, а строка «Проверка» говорит, что значение не помещается. Например, 128 в 8 битах даёт 10000000, что читается как −128.

Почему калькулятор использует точные целые для 64 бит?

Число JavaScript точно только до 2^53, а 64-битные значения идут до 2^64. Страница использует BigInt, поэтому каждый бит сохраняется, а предел −9 223 372 036 854 775 808 показан точно.

Использует ли Java дополнительный код для целых чисел?

Да. Спецификация языка Java определяет его целые типы в дополнительном коде, поэтому int — это 32 бита дополнительного кода, а long — 64 бита.

Источники

Цифры и текст в последний раз проверены вторник, 10 ноября 2026 г..

Мы используем необходимые cookie, чтобы сайт работал. С вашего согласия Google также использует рекламные cookie, чтобы показывать персонализированную рекламу. Если вы откажетесь, реклама всё равно будет показываться, но не будет персонализированной.