Конвертер систем счисления
Переводите число между двоичной, восьмеричной, десятичной и шестнадцатеричной системами. Введите значение, выберите систему, в которой оно записано, и сразу увидите все четыре — произвольная точность, всё в браузере, ничего не загружается на сервер.
Перевести из
Введите число выше, чтобы увидеть его во всех системах счисления.
Как пользоваться Конвертер систем счисления
- 1
Введите число
Введите или вставьте число в поле. Пробелы и подчёркивания игнорируются, поэтому сгруппированные значения вроде 1010_1101 тоже работают.
- 2
Выберите исходную систему
Укажите, в какой системе записано ваше число: двоичной, восьмеричной, десятичной или шестнадцатеричной.
- 3
Смотрите сразу все системы
Значение отображается одновременно в двоичной, восьмеричной, десятичной и шестнадцатеричной системах, поэтому вы можете сравнить или скопировать нужное.
- 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 из восьмеричной системы. Когда все четыре системы видны вместе, отпадает необходимость жонглировать ими в уме и исчезает риск ошибиться в ручных вычислениях.
Не менее полезен он и для обучения. Когда прогоняешь число через двоичную, восьмеричную, десятичную и шестнадцатеричную системы бок о бок, позиционная запись становится понятной, и проясняется, почему компьютеры, программисты и стандарты опираются каждый на своё основание. Отлаживаете ли вы код, учитесь или просто хотите узнать, как значение выглядит в другой системе, перевод между системами счисления — одна из самых универсально полезных операций в вычислительной технике.
Часто задаваемые вопросы
Как перевести шестнадцатеричное число в десятичное?
Какие системы счисления поддерживаются?
Поддерживаются ли очень большие числа?
Принимаются ли отрицательные числа?
Отправляется ли что-нибудь на сервер?
Похожие инструменты
Продолжайте работу с этими удобными инструментами