Что такое Двоичный калькулятор?

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

Кроме базовых операций, калькулятор показывает каждый результат сразу в четырёх системах счисления, чтобы вы видели одно и то же число в двоичной, десятичной, восьмеричной и шестнадцатеричной форме. Введите число в десятичной системе — и оно само переведётся в двоичное перед вычислением. Длина входа не ограничена жёстко, отрицательный результат вычитания обрабатывается. Деление целочисленное и отбрасывает остаток, как инструкции процессора низкого уровня; чтобы получить этот остаток, используйте операцию взятия остатка, а для степеней — операцию возведения в степень. Выберите разрядность регистра 8, 16 или 32 бита, чтобы дополнить результат до этого размера и прочитать его как знаковое значение в дополнительном коде — ровно так, как его хранил бы регистр процессора.

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

  1. Введите два числа — оставьте их в двоичной системе или переключите поле на десятичную, и оно само переведётся в двоичную.
  2. Выберите операцию: сложение, вычитание, умножение, деление, остаток или возведение в степень, а также побитовые AND, OR, XOR, NOT и сдвиги.
  3. Посмотрите результат в двоичной, десятичной, восьмеричной и шестнадцатеричной системах.

Когда использовать

  • Проверить домашку по двоичной арифметике или подготовиться к экзамену по цифровой логике.
  • Сравнить, как одно и то же значение регистра выглядит в десятичной и шестнадцатеричной.
  • Проверить поведение переноса и заёма перед написанием ассемблерной процедуры.

Результат

11011 + 10110 (27 + 22 в десятичной) даёт 110001 (49) — результат отображается в двоичной, десятичной, восьмеричной и шестнадцатеричной системах.

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

Почему вычитание большего из меньшего даёт отрицательное десятичное?
Калькулятор считает входы беззнаковыми положительными целыми, а результат показывает со знаком. Реальные процессоры работают в дополнительном коде и вернули бы большое положительное число. Поэтому 0001 минус 0010 здесь это -1, а в 8-битном регистре было бы 11111111. Выберите выше разрядность 8 бит, чтобы увидеть именно эту битовую комбинацию и её знаковое прочтение.
Поддерживается ли ввод в дополнительном коде?
Входы по-прежнему читаются как просто величины, без бита знака. Но дополнять вручную больше не нужно: выберите разрядность регистра 8, 16 или 32 бита, и результат покажется в дополнительном коде — дополненный до этой ширины и завёрнутый точно как аппаратный регистр, рядом с его знаковым десятичным значением.
Почему деление округляет вниз, а не даёт дробное число?
Здесь поведение как у целочисленной инструкции DIV в большинстве процессоров: усечение к нулю, остаток отбрасывается. 1010 ÷ 0011 (10 ÷ 3) возвращает 11 (то есть 3 в десятичной), а не 3,33. Если нужен сам остаток, переключитесь на операцию остатка; если нужна дробь, сперва переведите в десятичную.
Какой максимальный размер двоичной строки?
parseInt и Number в JavaScript работают с точностью 53 бита, поэтому входы примерно до 50 бит дают точный результат. Длиннее — младшие биты могут «плыть» из-за округления плавающей точки. Для учёбы подходит, для криптографии нет.
Как читать шестнадцатеричный результат?
В шестнадцатеричной системе (основание 16) каждые 4 бита превращаются в один знак из 0–9 и A–F. То есть 11111111 двоичное = FF шестнадцатеричное = 255 десятичное. Программисты любят hex, потому что каждая цифра ровно совпадает с полубайтом.

Похожие инструменты