Калькулятор систем счисления

Переводите целые и дробные числа между системами счисления, смотрите разложение по разрядам и выполняйте побитовые операции AND, OR, XOR и NOT. Калькулятор показывает, где перевод точен, а где дробь становится периодической.

Число

Позиционная система с основанием от 2 до 36. Цифры 0–9, затем A–Z; регистр не важен. Разделитель целой и дробной части — точка или запятая.

Допустимые цифры зависят от основания: в двоичной это 0 и 1, в шестнадцатеричной — 0–9 и A–F. Пустое поле и один разделитель — ошибка, а не ноль.

Результаты

—

—

DEC
—
BIN
—
OCT
—
HEX
—

Разряды

Каждый разряд целой части показан отдельно вместе со своим весом: цифра × основание в степени. Для дробной части веса отрицательные. Ниже — двоичная запись, дополненная нулями до выбранной ширины.

Двоичное представление: —

Побитовые операции

Операции выполняются над целой частью в выбранной ширине. Число берётся по модулю 2 в степени ширины, NOT — дополнение в этой ширине.

Результаты побитовых операций
ОперацияДвоичная записьDEC

Дробная часть

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

    —

    Как считается Разбор цифр, перевод дробей и побитовые операции

    Строка разбирается на знак, целые и дробные цифры. Каждая цифра проверяется на допустимость для выбранного основания: например, в основании 2 допустимы только 0 и 1, в основании 16 — 0–9 и A–F. Пустая строка и один разделитель считаются ошибкой, а не нулём.

    Целая часть переводится делением на новое основание с остатками, дробная — повторным умножением на новое основание с выделением целой цифры. По умолчанию показываются первые 12 дробных цифр; если остаток обращается в ноль, представление точное.

    Побитовые операции AND, OR, XOR и NOT выполняются над целой частью в выбранной ширине 8, 16 или 32 бита. Число приводится по модулю 2 в степени ширины. Дробная часть в побитовых операциях не участвует, о чём выводится предупреждение.

    Что считает калькулятор

    Число в позиционной системе — это сумма цифр, умноженных на степени основания. Калькулятор переводит целую и дробную часть между системами с основанием от 2 до 36, показывает разложение по разрядам и выполняет побитовые операции AND, OR, XOR и NOT над целой частью.

    Как заполнить поля

    Введите число и выберите его систему: двоичную, восьмеричную, десятичную, шестнадцатеричную или любую другую с основанием от 2 до 36. Цифры после девятки обозначаются буквами A–Z, регистр не важен. Дробная часть отделяется точкой или запятой. Для побитовых операций нужен второй операнд и ширина — 8, 16 или 32 бита.

    Как получается результат

    Целая часть переводится делением на новое основание: остатки дают цифры от младшего разряда к старшему. Например, 255 при делении на 16 даёт остатки 15 и 15, то есть FF.

    Дробная часть переводится умножением. Берётся дробь, умножается на основание, целая часть результата становится очередной цифрой, а дробная уходит в следующий шаг: 0,25 × 2 = 0,5 → цифра 0; 0,5 × 2 = 1,0 → цифра 1, итог 0,01 в двоичной записи.

    Перевод дроби не всегда заканчивается. Тогда показываются первые 12 цифр и ставится пометка, что представление периодическое: десятичная 0,1 в двоичной системе даёт 0,0001100110011… и не обрывается.

    Побитовые операции работают над целой частью по модулю 2 в степени выбранной ширины. Восемь бит означают маску 255, шестнадцать — 65535, тридцать два — 4294967295. NOT в этой же ширине даёт дополнение до маски. Дробная часть в побитовых операциях не участвует, о чём калькулятор предупреждает.

    Панель разрядов раскладывает число на блоки: у каждого разряда своя цифра и вес b в степени позиции. Отдельный ряд показывает дробные разряды с весами b⁻¹, b⁻² и так далее.

    Пример, который можно повторить

    255 в десятичной системе — это 11111111 в двоичной, 377 в восьмеричной и FF в шестнадцатеричной. 10,25 даёт 1010,01 в двоичной, а 0,5 — ровно 0,1. Шестнадцатеричное 2A равно десятичному 42.

    При ширине 8 бит: FF AND 0F = 00001111 = 15; FF OR 0F = 11111111 = 255; FF XOR 0F = 11110000 = 240; NOT FF = 00000000 = 0.

    Где модель не работает

    Перевод ограничен дробной частью: у периодических дробей точное представление бесконечно, показаны только первые 12 цифр. Большие целые числа переводятся через числа двойной точности, поэтому выше 2⁵³ возможна потеря точности — для таких значений нужны целочисленные библиотеки. Побитовые операции сознательно ограничены 32 битами и не применяются к дробной части. Отрицательные числа не имеют здесь представления в дополнительном коде: знак учитывается отдельно, а не как старший бит.