Калькулятор двоичного дополнительного кода Преобразование двоичной и десятичной систем, поддержка знаковых чисел и дополнений

Результат преобразования

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

Бесплатный онлайн-инструмент для перевода чисел между двоичной и десятичной системами счисления, вычисления дополнения до 1 и дополнения до 2, а также обратного преобразования из дополнительного кода в исходное число. Поддерживаются положительные и отрицательные целые числа разрядностью 8, 16, 32 и 64 бит.

Основные функции

  • Десятичное → Двоичное: перевод целых чисел со знаком и без знака
  • Двоичное → Десятичное: интерпретация как знакового, так и беззнакового числа
  • Дополнение до 1: побитовая инверсия (0↔1)
  • Дополнение до 2: дополнение до 1 плюс 1, стандартное представление отрицательных чисел в современных процессорах
  • Обратное преобразование: восстановление исходного двоичного числа из дополнительного кода
  • Разрядность: 8, 16, 32, 64 бита

Области применения

  • Студенты технических специальностей: подготовка к экзаменам по архитектуре ЭВМ и цифровым системам, проверка домашних заданий
  • Разработчики на C/C++ и Rust: отладка побитовых операций, проверка целочисленного переполнения, работа с типами int8_t, int16_t, int32_t
  • Java-разработчики: все целочисленные типы Java используют дополнительный код; инструмент помогает отлаживать операции над битами
  • Python-разработчики: проверка масок и битовых сдвигов, понимание результатов оператора ~
  • Проектировщики цифровых схем: симуляция работы сумматора и АЛУ на уровне битового представления чисел

Руководство по использованию (пошагово)

  1. Выберите направление преобразования: «Десятичное → Двоичное» или «Двоичное → Десятичное»
  2. Введите число в поле ввода (для отрицательных десятичных чисел используйте знак минус)
  3. Укажите разрядность: 8, 16, 32 или 64 бита
  4. Результаты отображаются мгновенно: беззнаковое двоичное, дополнение до 1, дополнение до 2
  5. Нажмите кнопку «Копировать», чтобы вставить результат в код или документ

Что такое дополнительный код?

В информатике дополнительный код (дополнение до 2, two's complement) — это стандартный способ представления знаковых целых чисел во всех современных процессорах. Он позволяет выполнять сложение и вычитание одной и той же аппаратной схемой.

Дополнение до 1: инвертируются все биты. Пример: 00001010 (+10) → 11110101

Дополнение до 2: дополнение до 1 + 1. Пример: 11110101 + 1 = 11110110, что соответствует −10 в 8-битном представлении.

Подробнее: Дополнительный код — Википедия

Полезные советы

  • Диапазоны значений: 8 бит (−128…+127), 16 бит (−32 768…+32 767), 32 бита (−2 147 483 648…+2 147 483 647).
  • При переполнении инструмент выведет предупреждение — увеличьте разрядность.
  • В языке C оператор ~x вычисляет дополнение до 1; выражение -x даёт дополнение до 2.
  • В Python отрицательные числа хранятся с произвольной точностью, но внутренне используют концепцию дополнительного кода.

Часто задаваемые вопросы (FAQ)

  • Инструмент бесплатный?
    Да, полностью бесплатный, без регистрации и ограничений.
  • Как перевести отрицательное десятичное число в двоичное?
    Просто введите число со знаком минус — инструмент автоматически покажет его представление в дополнительном коде.
  • Чем дополнение до 2 отличается от представления с знаковым битом?
    В представлении «знак-модуль» старший бит обозначает знак, остальные — модуль. В дополнительном коде все биты участвуют в вычислениях, что упрощает аппаратную арифметику и исключает два представления нуля.
  • Какая максимальная разрядность поддерживается?
    До 64 бит включительно.
  • Как восстановить исходное число из дополнительного кода?
    Введите двоичное число в поле «Дополнение → исходное двоичное» — инструмент автоматически вычислит обратное преобразование.

Методы преобразования десятичной в двоичную систему для различных языков программирования

JavaInteger.toBinaryString(decimal_number)
JavaScriptlet binary = decimal_number.toString(2);
Microsoft .NET / C#string binary = Convert.ToString(decimal_number, 2);
Pythonbinary = bin(decimal_number)[2:]
Rubybinary = decimal_number.to_s(2)
Go import strconv
binary := strconv.FormatInt(decimal_number, 2)