Как пользоваться
- Введите число в поле Число или биты. Для битов выберите шестнадцатеричную или двоичную запись в поле Записано как.
- Выберите Разрядность: число бит, которые хранит компьютер, 8, 16, 32 или 64.
- Прочитайте Биты дополнительного кода для хранимого шаблона и Сравнение форм для двух других систем.
- Если Проверка говорит, что число не помещается, показанные биты — это то, что компьютер сохранил бы вместо него.
Как хранится отрицательное число
Компьютер хранит целое число со знаком в фиксированном количестве бит. В дополнительном коде старший бит означает −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 г..