Подключиться через MCP →

Введите расчет

Математическая формула

Реклама

Результатов

Two's Complement Binary (8-bit)
11111011
представление в дополнительном коде
Беззнаковое значение 251
Знаковое значение -5
Разрядность 8 бит

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

Дополнительный код (two's complement) — стандартный способ хранения целых чисел со знаком в компьютере. Этот калькулятор переводит любое десятичное число в его представление в дополнительном коде для выбранной разрядности (4, 8, 16 или 32 бита) и показывает как беззнаковое значение разрядной комбинации, так и знаковое значение, которое эти биты кодируют.

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

Введите десятичное число — положительное или отрицательное — и выберите разрядность. Инструмент приводит число по модулю \(2^n\), формируя ровно ту последовательность битов, которую сохранил бы процессор. Он также сообщает, какое знаковое значение декодируется из этой же комбинации, чтобы вы могли проверить корректность преобразования в обе стороны.

Разбор формулы

Для поля из n битов беззнаковое представление вычисляется так: $$u = ((x \bmod 2^n) + 2^n) \bmod 2^n$$ Это «заворачивает» отрицательные числа: в 8 битах −5 превращается в \(256 - 5 = 251\), что в двоичной системе равно 11111011. Чтобы декодировать комбинацию обратно в знаковое значение, проверьте старший бит (MSB): если он равен 1 (то есть \(u \ge 2^{n-1}\)), значение равно \(u - 2^n\); иначе оно просто равно \(u\). Эквивалентный способ сменить знак — инвертировать все биты и прибавить единицу: \(\sim x + 1\).

Number line showing unsigned values wrapping into signed positive and negative ranges
Values at or above 2^(n-1) wrap to negative; the upper unsigned half maps to negative signed numbers.

Разбор примера

Переведём −5 в 8-битный дополнительный код. Шаг 1: \(2^8 = 256\). Шаг 2: \(u = ((-5 \bmod 256) + 256) \bmod 256 = 251\). Шаг 3: 251 в двоичном виде — это 11111011. Поскольку старший бит равен 1, знаковое значение составляет \(251 - 256 = -5\), что подтверждает правильность преобразования.

Step diagram converting a negative decimal to two's complement binary
Two's complement of a negative value: invert the bits of the magnitude, then add one.

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

Что будет, если число не помещается в выбранную разрядность? Оно «заворачивается» (происходит переполнение) по модулю \(2^n\) — ровно так же, как это сделало бы железо. Например, 300 в 8 битах превращается в \(300 - 256 = 44\).

Почему беззнаковое значение отличается от знакового? Одни и те же биты можно прочитать двумя способами. При беззнаковой интерпретации все биты считаются положительными; при знаковой старший бит трактуется как отрицательный вес.

Поддерживается ли 64-битная разрядность? Инструмент работает с распространёнными разрядностями до 32 бит, чтобы результаты оставались в пределах безопасной точности.

Последнее обновление: