Калькулятор обратного кода

Инвертируйте каждый бит двоичного числа или рассчитайте обратный код фиксированной разрядности для десятичного целого.

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

Об обратном коде

Обратный код двоичного числа получают инверсией каждого бита: ноль становится единицей, а единица — нулём. Эта операция также называется побитовой инверсией или логическим НЕ. Её легко выполнить вручную, но она широко применяется в архитектуре компьютеров, цифровой электронике, сетевых протоколах и изучении знаковой двоичной арифметики. Калькулятор сохраняет длину двоичного ввода, чтобы ведущие нули и заданная ширина регистра оставались видимыми в ответе. Разрядность важна, когда перед инверсией преобразуют десятичное целое. Десятичное значение 42 в кратчайшей двоичной форме записывается как 101010, но восьмибитный регистр хранит его как 00101010. Инверсия всех восьми позиций даёт 11010101, или 213 при беззнаковой интерпретации. Другая разрядность создаёт другой битовый шаблон, поскольку дополнительные ведущие нули становятся единицами. Поэтому в десятичном режиме инструмент запрашивает ширину от 1 до 32 и отклоняет число, которое не помещается в это количество беззнаковых битов. Исторически обратный код также использовался для представления чисел со знаком. Положительные значения записывались обычным двоичным кодом, а отрицательные получались инверсией битов соответствующего положительного значения. В этой системе есть два представления нуля: все нули для положительного нуля и все единицы для отрицательного. Большинство современных процессоров использует дополнительный код, поскольку в нём один ноль и проще арифметические схемы. Тем не менее арифметика обратного кода важна для контрольных сумм Интернета: слова складывают с циклическим переносом, а итоговую сумму инвертируют. Не путайте обратный код с дополнительным. Дополнительный код получают прибавлением единицы к обратному коду в пределах фиксированной разрядности. Это различие меняет представляемое отрицательное значение и особенно важно при отладке низкоуровневого ПО. Калькулятор выполняет только прямую инверсию битов, выводит полученную последовательность и её беззнаковую десятичную интерпретацию. Он удобен для проверки учебных задач, создания битовых масок, изучения логических элементов и контроля преобразований фиксированной ширины без ручного просмотра каждой позиции. Для двоичного ввода укажите точную последовательность, биты которой нужно инвертировать. Для десятичного выберите достаточно битов, чтобы вместить исходное число. Панель результатов показывает исходные биты с дополнением нулями, инвертированную последовательность и беззнаковое десятичное значение, позволяя сразу проверить каждый этап.

Примеры обратного кода

ВводВыводПояснение
Двоичное 10100101Каждая из четырёх позиций инвертируется.
Двоичное 0000111111110000Позиции ведущих нулей сохраняются и становятся единицами.
Десятичное 42, 8 бит11010101 (213)Перед инверсией 42 дополняется нулями до 00101010.

Как рассчитать обратный код

  1. Выберите «Двоичный ввод», если у вас уже есть битовая последовательность, или «Десятичный ввод», если нужно преобразование.
  2. Введите двоичную последовательность или неотрицательное десятичное целое.
  3. Для десятичного ввода выберите разрядность, достаточную для исходного числа.
  4. Нажмите «Рассчитать обратный код», чтобы увидеть дополненный ввод, инвертированные биты и десятичный результат.

Частые вопросы об обратном коде

Как найти обратный код двоичного числа?

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

Почему разрядность меняет результат в десятичном режиме?

Ведущие нули являются частью двоичного представления фиксированной ширины и при инверсии становятся единицами. Поэтому восьмибитная инверсия отличается от шестнадцатибитной для одного десятичного значения.

Обратный и дополнительный код — одно и то же?

Нет. Дополнительный код прибавляет единицу к обратному коду в пределах выбранной разрядности, а обратный код только инвертирует биты.

Что такое отрицательный ноль в арифметике обратного кода?

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

Где ещё используется арифметика обратного кода?

Она используется в контрольных суммах протоколов IPv4, TCP и UDP. Слова фиксированной разрядности складываются с циклическим переносом, затем итоговая сумма инвертируется.