T

Text Machine

Мощные текстовые инструменты прямо в браузере

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

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

Перевести из

Число
Результат

Введите число выше, чтобы увидеть его во всех системах счисления.

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

  1. 1

    Введите число

    Введите или вставьте число в поле. Пробелы и подчёркивания игнорируются, поэтому сгруппированные значения вроде 1010_1101 тоже работают.

  2. 2

    Выберите исходную систему

    Укажите, в какой системе записано ваше число: двоичной, восьмеричной, десятичной или шестнадцатеричной.

  3. 3

    Смотрите сразу все системы

    Значение отображается одновременно в двоичной, восьмеричной, десятичной и шестнадцатеричной системах, поэтому вы можете сравнить или скопировать нужное.

  4. 4

    Скопируйте результат

    Нажмите кнопку копирования рядом с любой системой, чтобы поместить это значение в буфер обмена.

Системы счисления: двоичная, восьмеричная, десятичная и шестнадцатеричная

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

Основание системы счисления (его также называют радиксом) — это число различных цифровых символов, которые использует система, а значит, и то, каков вес каждой позиции. Десятичная система имеет основание 10 с десятью цифрами от 0 до 9. Двоичная система — это основание 2 с двумя цифрами, восьмеричная — основание 8 с восемью, а шестнадцатеричная — основание 16 с шестнадцатью. Одну и ту же величину можно записать в любой системе — меняются лишь символы и веса разрядов, но не само значение.

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

Позиционная запись в разных системах

Каждая из этих систем позиционная: это значит, что значение цифры умножается на степень основания в соответствии с её разрядом. В десятичной системе разряды справа налево — это степени десяти: единицы, десятки, сотни. В любой системе с основанием b разряды представляют собой степени b: крайний справа — это b в нулевой степени (всегда 1), затем b, затем b в квадрате и так далее. Чтобы найти значение числа, умножьте каждую цифру на степень её разряда и сложите результаты.

Это единственное правило объединяет все системы. Разряды в двоичной системе — это степени двойки (1, 2, 4, 8), в восьмеричной — степени восьмёрки (1, 8, 64, 512), а в шестнадцатеричной — степени шестнадцати (1, 16, 256, 4096). Перевод любого числа в десятичную систему — это просто применение такой взвешенной суммы; перевод из десятичной в другую систему выполняется в обратном порядке, путём повторного деления на это основание.

Цифровые символы больше 9

Системе счисления нужно ровно столько цифровых символов, каков её размер, и для систем с основанием больше десяти это поднимает вопрос: как записать одну цифру со значением больше девяти? Шестнадцатеричная система решает это, заимствуя буквы. После цифр от 0 до 9 она использует A для десяти, B для одиннадцати, C для двенадцати, D для тринадцати, E для четырнадцати и F для пятнадцати. Таким образом, одна шестнадцатеричная цифра охватывает значения от нуля до пятнадцати, а регистр не имеет значения, поэтому F и f равны.

Системам с основанием десять и меньше буквы не нужны. Двоичная использует только 0 и 1, восьмеричная — от 0 до 7, а десятичная — от 0 до 9. Именно поэтому некоторые цифры недопустимы в определённых системах: 8 или 9 не могут появиться в восьмеричной, а в двоичной допустимы только 0 и 1. Если вы введёте цифру, слишком большую для выбранной системы, значение не будет допустимым числом в этой системе, и конвертер сообщит вам об этом.

Зачем нужна каждая система

Двоичная система — родной язык компьютеров, потому что аппаратные переключатели имеют два состояния, включено и выключено, которые напрямую соответствуют 1 и 0. Всё, что хранит машина, в конечном счёте двоично, поэтому основание 2 необходимо для понимания того, как данные представлены на самом низком уровне, даже несмотря на то, что длинные двоичные числа утомительно читать человеку.

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

Разбор примера: 0xFF во всех системах

Возьмём шестнадцатеричное значение FF и переведём его во все четыре системы. Если читать по разрядам, левая F находится в разряде шестнадцати, а правая F — в разряде единиц, поэтому это 15 умножить на 16 плюс 15 умножить на 1, то есть 240 плюс 15, что даёт 240 + 15 = 255 в десятичной системе. Это максимальное значение одного байта.

Та же величина в двоичной системе — это 11111111, восемь единиц, поскольку 255 на единицу меньше 256, то есть двойки в восьмой степени. В восьмеричной системе это 377, потому что 255 — это 3 умножить на 64 плюс 7 умножить на 8 плюс 7. Так одно значение, 255, выглядит как FF, 11111111, 377 и 255 в зависимости от системы, и этот конвертер показывает все четыре сразу, чтобы вы могли сравнить их напрямую.

Второй пример перевода между системами

Переведём десятичное число 100 в остальные три системы. Для двоичной найдём степени двойки, дающие его в сумме: 64 + 32 + 4 равно 100, поэтому разряды 64, 32 и 4 установлены, и результат — 1100100. Для шестнадцатеричной разделим на шестнадцать: 100 — это 6 умножить на 16 (96) с остатком 4, что даёт 64. Для восьмеричной разделим на восемь: 100 — это 1 умножить на 64 плюс 4 умножить на 8 плюс 4, что даёт 144.

Итак, десятичное 100 — это двоичное 1100100, восьмеричное 144 и шестнадцатеричное 64. Обратите внимание: чем выше основание, тем короче запись, ведь каждый разряд несёт больший вес. Именно эта компактность объясняет, почему шестнадцатеричную систему предпочитают для записи значений байтов, которые в двоичной были бы громоздкими.

Большие числа, отрицательные значения и форматирование ввода

Этот конвертер использует целые числа произвольной точности, поэтому он переводит значения далеко за пределами обычного 64-битного диапазона точно, без округления — это полезно, когда вы работаете с длинными хешами, идентификаторами или криптографическими значениями, которые переполнили бы обычные числовые типы. Он также принимает отрицательные числа: поставьте знак минус впереди, и этот знак сохранится во всех системах в результате.

Для удобства пробелы и подчёркивания во вводе игнорируются, поэтому сгруппированное значение вроде 1010_1101 или 255 255 читается как одно число. Это позволяет вставлять значения, отформатированные для удобства чтения, не очищая их предварительно. Просто убедитесь, что каждая цифра допустима для выбранной системы — никаких 2 в двоичной, никаких 8 или 9 в восьмеричной, только 0-9 и A-F в шестнадцатеричной, — иначе ввод будет помечен как недопустимый для этой системы.

Где пригождается перевод между системами

Перевод между системами счисления — повседневная задача в программировании и системной работе. Вы читаете адрес памяти или значение регистра в hex и хотите получить десятичный эквивалент, переводите двоичный набор битов в компактный hex или расшифровываете права доступа Unix вроде 644 из восьмеричной системы. Когда все четыре системы видны вместе, отпадает необходимость жонглировать ими в уме и исчезает риск ошибиться в ручных вычислениях.

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

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

Как перевести шестнадцатеричное число в десятичное?
Выберите Hex в качестве исходной системы и введите шестнадцатеричное значение, например ff. Десятичный результат 255 появится мгновенно вместе с двоичной и восьмеричной формами.
Какие системы счисления поддерживаются?
Двоичная (основание 2), восьмеричная (основание 8), десятичная (основание 10) и шестнадцатеричная (основание 16). Каждое значение отображается сразу во всех четырёх, поэтому переводить дважды не придётся.
Поддерживаются ли очень большие числа?
Да. Конвертер использует целые числа произвольной точности, поэтому значения далеко за пределами обычного 64-битного диапазона переводятся точно, без округления.
Принимаются ли отрицательные числа?
Да. Поставьте знак минус перед значением, и он сохранится во всех системах счисления в результате.
Отправляется ли что-нибудь на сервер?
Нет. Преобразование полностью выполняется в вашем браузере, поэтому ваши числа никогда не покидают устройство и ничего не сохраняется.

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

Продолжайте работу с этими удобными инструментами

Конвертер Unix-времени

Конвертер JSON в CSV

Конвертер CSV в JSON

Конвертер JSON в YAML

Конвертер текста в двоичный код

Конвертер текста в HEX