Инструмент разработчика

Конвертер систем счисления

Переводите числа между двоичной, восьмеричной, десятичной и шестнадцатеричной — мгновенно и точно.

Конвертер систем счисления

Введите число, выберите его систему — и увидите все четыре сразу.

Все инструменты

Двоичная
Восьмеричная
Десятичная
Шестнадцатеричная

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

Ещё инструменты для разработчиков и данных.

Как пользоваться конвертером систем счисления

Введите значение в поле Число, затем в меню Система ввода укажите, в какой системе вы его записали: десятичной, двоичной, восьмеричной или шестнадцатеричной. Сразу после этого двоичная, восьмеричная, десятичная и шестнадцатеричная формы появятся вместе и будут синхронно меняться при правке любой цифры. У каждого результата есть своя кнопка Копировать, чтобы вставить значение прямо в код, калькулятор или конфиг. Шестнадцатеричные буквы можно вводить в любом регистре, а распространённые префиксы вроде 0x для hex или 0b для двоичной системы инструмент игнорирует, поэтому значение из исходного кода вставляется без правок.

Что такое система счисления на самом деле

Основание (радикс) — это просто количество разных цифр, которые система использует, прежде чем перейти в новый разряд. Десятичная (основание 10) использует десять цифр, от 0 до 9; двоичная (основание 2) — только 0 и 1; восьмеричная (основание 8) — от 0 до 7; а шестнадцатеричная (основание 16) — от 0 до 9 плюс буквы A–F для значений от десяти до пятнадцати. Главная мысль в том, что все четыре — это разные наряды для одной и той же величины. Число, записанное как 255 в десятичной, — ровно та же величина, что 11111111 в двоичной, 377 в восьмеричной и FF в шестнадцатеричной. Перевод между системами никогда не меняет само число, меняется лишь способ его записи — именно поэтому инструмент может показывать все формы сразу.

Десятичная, двоичная, восьмеричная и hex рядом

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

ДесятичнаяДвоичнаяВосьмеричнаяHex
0000
21022
81000108
10101012A
15111117F
16100002010

Одна шестнадцатеричная цифра соответствует ровно четырём двоичным разрядам — поэтому программисты используют hex, чтобы читать длинные двоичные строки с одного взгляда.

Разбор примера: переводим 156 вручную

Чтобы перевести десятичное 156 в шестнадцатеричную систему, делим на 16: 156 разделить на 16 — это 9 с остатком 12, а 12 — это шестнадцатеричная цифра C, поэтому 156 превращается в 9C. Для двоичной можно применить приём «четыре бита на одну hex-цифру»: 9 — это 1001, а C — это 1100, значит 156 — это 10011100. Сгруппировав эту двоичную запись по три разряда справа, получаем 234 в восьмеричной. Введите 156 в инструмент с выбранной десятичной системой — и увидите ровно эти результаты, что удобно для проверки вычислений на бумаге.

Чем полезен этот инструмент

Любой, кто читает или пишет низкоуровневый код, целый день переключается между системами. Шестнадцатеричная встречается в кодах цветов CSS вроде #1A2B3C, в адресах памяти и указателях, в значениях байтов из сетевых пакетов и в кодах ошибок. Двоичная — это область битовых масок, флагов прав доступа и побитовых операторов, а десятичная — форма, которой люди реально оперируют. Делать такие переводы в уме медленно и легко ошибиться, особенно когда появляются буквы и длинные значения, поэтому одновременное обновление всех четырёх записей убирает целый класс мелких ошибок и избавляет от отдельного калькулятора.

Точность и конфиденциальность

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

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

Почему компьютеры используют двоичную и шестнадцатеричную системы, а не десятичную?

Компьютер хранит всё в виде состояний транзисторов включено/выключено, которые напрямую соответствуют двум цифрам двоичной системы, 0 и 1, поэтому двоичная — естественный язык аппаратуры. Шестнадцатеричную используют люди, потому что одна hex-цифра равна ровно четырём двоичным разрядам: длинная двоичная строка сжимается вчетверо и легко переводится обратно. Десятичная остаётся для повседневной математики, где привычку задают десять пальцев, а не два уровня напряжения.

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

У любого числа одно истинное значение независимо от записи; меняется только запись. Чтобы прочитать число в любой системе, умножьте каждую цифру на основание в степени её позиции и сложите результаты — получится десятичное значение. Чтобы записать это значение в нужной системе, многократно делите его на основание и собирайте остатки от последнего к первому. Инструмент делает оба шага за вас, поэтому число вводится один раз, а все четыре записи видны сразу.

Можно ли переводить отрицательные числа?

Да, в формате «знак и величина»: поставьте минус перед числом, и во всех переведённых формах минус сохранится. Это привычное человеческое прочтение отрицательного числа, и оно отличается от дополнительного кода, в котором процессор хранит то же значение в регистре фиксированной ширины — там оно выглядит как длинная цепочка ведущих единиц вообще без знака минус.

Меняют ли ведущие нули значение числа?

Нет. Ведущие нули никогда не меняют значение числа ни в одной системе, поэтому 0x00FF и 0xFF — одно и то же число. Их добавляют лишь для выравнивания до фиксированной ширины, например чтобы показать байт как восемь двоичных или две шестнадцатеричные цифры, что выравнивает столбцы и упрощает чтение позиций битов.

Справляется ли инструмент с очень большими числами и остаётся ли ввод приватным?

Да в обоих случаях. Используется арифметика произвольной точности, поэтому значения далеко за пределами 64 бит переводятся точно, без округления. Все вычисления выполняются локально в браузере, поэтому введённое число никогда не отправляется и не сохраняется на сервере.