Перевод систем счисления онлайн — двоичная, восьмеричная, hex
Системы счисления 2/8/10/16/36 и произвольная — на BigInt, с отрицательными числами и префиксами 0x/0b/0o
Работает в браузере · файлы никуда не загружаются
Что это за инструмент
Одно и то же число в двоичной системе — 11111111, в шестнадцатеричной — ff, в десятичной — 255. Адреса памяти, коды цветов, битовые маски и права доступа к файлам в Unix (восьмеричные) постоянно заставляют читать значение в другой системе счисления. Введите одно число и сразу увидите его в системах 2, 8, 10, 16, 36 и в системе по вашему выбору.
Как пользоваться
- Введите число. Пробелы и
_игнорируются как разделители разрядов, поэтому1111_0000подойдет. - Выберите систему ввода. По умолчанию стоит «Авто»: ищется префикс
0x,0bили0o, а без него число считается десятичным. - Скопируйте нужное значение из таблицы результатов. Строка произвольной системы принимает любое основание от 2 до 36.
- Включите заглавные цифры, если вам привычнее
FF, чемff.
Как это работает
- Разбор выполняется через
BigInt. Символы читаются слева направо и накапливаются по формулеvalue = value × base + digit, поэтому ограничения на величину нет, кроме лимита ввода в 20 000 символов. - Значения цифр берутся из 0-9 и букв a-z (регистр не важен) и означают 0-9 и 10-35. Поэтому максимальное основание — 36.
- Цифра, значение которой больше или равно основанию, выдается как ошибка с позицией и списком цифр, допустимых в этой системе.
2в двоичной или9в восьмеричной системе — ошибка. - Знак (
-или+) распознается только в самом начале и никогда после префикса. - Число бит — это длина модуля числа в двоичной записи; ноль считается одним битом.
Примеры
| Ввод | Система | Двоичная | Шестнадцатеричная | Десятичная |
|---|---|---|---|---|
255 |
10 | 11111111 | ff | 255 |
0xff |
Авто | 11111111 | ff | 255 |
-0b101 |
Авто | -101 | -5 | -5 |
18446744073709551617 |
10 | 1, шестьдесят три нуля, 1 | 10000000000000001 | 18446744073709551617 |
Как обычное число JavaScript 2^64+1 теряет последнюю цифру, а здесь получается точно: 10000000000000001 в шестнадцатеричной системе.
Полезно знать
- В восьмеричной системе записывают права
chmod 755, в шестнадцатеричной — адреса и цвета вроде#1e90ff, а 36-ричная удобна для коротких компактных ID. - Если затесался символ, который не является цифрой, например буква в десятичном числе или кириллица, в сообщении об ошибке будет указана его позиция.
Частые вопросы
Очень большие числа переводятся точно?
Да. Обычные числа JavaScript точны только до 2^53, а здесь расчет ведется в целых числах произвольной точности (BigInt), поэтому значения больше 2^64 переводятся без ошибки хотя бы в одной цифре. Длина ввода — до 20 000 символов.
Как отображаются отрицательные числа?
Знак сохраняется, а переводится модуль числа, поэтому -255 в шестнадцатеричной системе — это -ff. Это не битовое представление в дополнительном коде; если оно нужно для фиксированной ширины, например 8 бит, интерпретируйте результат самостоятельно.
Можно ли вводить префиксы 0x или 0b?
Если система ввода — «Авто», распознаются префиксы 0x (шестнадцатеричная), 0b (двоичная) и 0o (восьмеричная), а число без префикса считается десятичным. Если система выбрана вручную, принимается только соответствующий ей префикс; в 16-ричной системе текст 0b1 — это цифры 0, b, 1, а не префикс.
А дробные числа?
Поддерживаются только целые числа. Десятичная точка выдается как недопустимый символ с указанием позиции.