Конвертер систем счисления
Перевод целых чисел между двоичной, восьмеричной, десятичной и шестнадцатеричной системами через BigInt. До 4096 цифр, со знаком, без потери точности.
До 4096 значащих цифр. Знак +/−, префикс и ведущие нули не входят в лимит. Допустимы крайние пробелы и префикс 0b/0o/0x только для выбранного основания. Внутренние пробелы запрещены.
BIN (2)
OCT (8)
DEC (10)
HEX (16)
Последние переводы
В истории — сводка (основание и длина ввода), сами числа и результаты не сохраняются. Основание восстанавливается кнопкой «В закладки».
Готовые примеры
Найдено: 4 из 4
- 255 DEC — тот же номер в BIN, OCT и HEXДесятичная запись 255 — ff в HEX, 377 в OCT и восемь единиц 11111111 в BIN. BigInt считает точно, поэтому все четыре результата показываются сразу.
- 0xff HEX — сколько это в DECШестнадцатеричная запись 0xff — те же 255 в DEC, что и 377 в OCT, и 11111111 в BIN. Префикс 0x незначащий: его можно писать, а можно опустить.
- 0o755 OCT — права доступа в десятичном видеВосьмеричная запись 0o755 — те же права rwxr-xr-x, что разбирает калькулятор chmod, и число 493 в DEC. Преобразователь показывает все четыре системы разом.
- 9007199254740993 — выше Number.MAX_SAFE_INTEGERЧисло на два выше Number.MAX_SAFE_INTEGER: в double следующие разряды уже не помещаются. BigInt переводит его точно — HEX 20000000000001, и обратно без потерь.
Точный перевод целых чисел
Парсинг и форматирование выполняются через BigInt: 9007199254740993 (выше Number.MAX_SAFE_INTEGER) не округляется. Например, 255 DEC = ff HEX = 377 OCT = 11111111 BIN.
Только целые числа: без дробей, экспоненциальной записи и IEEE-754. Отрицательные результаты имеют знак «-», а не дополнительный код. Ноль и -0 выводятся как 0. В HEX регистр ввода не важен; вывод — строчными буквами.
Смена основания заново трактует тот же ввод, а не меняет его. Лимит относится к входу: результаты могут быть длиннее 4096 цифр и не обрезаются. Нет файлов и истории; перезагрузка очищает данные.
Что это и как пользоваться
Конвертер переводит целые числа между основаниями 2, 8, 10 и 16, показывая все четыре записи сразу. Считает он на BigInt, поэтому 9007199254740993 — число, которое не влезает в double без потери точности, — переводится ровно, а не «примерно».
Четыре записи видны одновременно, поэтому не нужно переключать основание, чтобы сравнить: 255 — это 11111111 в двоичной, 377 в восьмеричной и ff в шестнадцатеричной.
Префиксы 0b, 0o и 0x понимаются, но должны совпадать с выбранным основанием: 0xff при основании 16 разбирается, а 0xff при основании 10 — ошибка, а не молчаливое угадывание.
Двоичная запись группируется по четыре бита в hex-цифру, поэтому 0xff00 — это 1111111100000000, и по такой записи сразу видно, что старший байт заполнен, а младший пуст.
Знак минус переносится во все записи, ведущие нули отбрасываются, а длина ограничена 4096 значащими цифрами — этого хватает и на криптографические числа, и на длинные идентификаторы.
Ошибка в цифре указывает позицию: видно, какой именно символ не принадлежит алфавиту выбранного основания.
Когда пригодится
- Разобрать битовую маску: перевести 0xff00 в двоичное и увидеть, какие биты выставлены.
- Прочитать адрес или цвет: hex → десятичное для проверки в коде.
- Проверить потерю точности: увидеть, как выглядит число за пределом 2⁵³ в разных системах.
- Перевести права доступа: 0o755 → 493, когда нужна десятичная форма.
- Проверить маску прав или флагов, не считая биты в уме по hex-записи.
- Перевести номер цвета в десятичное, когда API принимает только число, а макет задан в hex.
- Посмотреть, как выглядит отрицательное число в двоичной записи, прежде чем считать дополнительный код вручную.
Чего инструмент не делает
- Только целые: дробная часть и экспоненциальная запись отклоняются как нецелое значение.
- Оснований ровно четыре: base32, base36 и base58 не поддерживаются.
- Арифметика не выполняется: страница переводит одно значение, а не складывает числа в разных системах.
- Отрицательные числа не переводятся в дополнительный код: минус остаётся знаком, а не старшим битом.
- Разделители разрядов не поддерживаются: пробелы и подчёркивания внутри числа нужно убрать.
- Регистр букв в hex не важен: FF и ff дают одно и то же число.
Примеры
- Вход
0xff- Выход
255 (десятичное), 11111111 (двоичное), 377 (восьмеричное)- Вход
9007199254740993- Выход
100000000000000000000000000000000000000000000000000001 (двоичное)