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

Переведите число из одной системы счисления в другую — от двоичной до 36-ричной.

Результат в основных системах
—
—Двоичная (2)
—Восьмеричная (8)
—Десятичная (10)
—Шестнадцатеричная (16)
Результат
—

Как перевести число в другую систему счисления

Сначала число переводят в десятичную систему: каждую цифру умножают на основание в степени её разряда и складывают результаты. Затем десятичное значение делят на основание целевой системы с остатком, пока не получится ноль. Остатки, записанные в обратном порядке, — и есть ответ.

Основание системы — это количество цифр, которыми записывают числа. В двоичной их две (0 и 1), в восьмеричной восемь, в десятичной десять, в шестнадцатеричной — цифры 0–9 плюс буквы A–F. Основные направления перевода:

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

Переведём 255 из десятичной в шестнадцатеричную. Делим 255 на 16: получаем 15 и остаток 15. Частное 15 меньше основания, значит деление закончено. Остатки читаем с конца: 15 и 15, а число 15 в шестнадцатеричной записи — буква F.

255₁₀ = FF₁₆ = 377₈ = 11111111₂

Проверка обратным переводом: 15 × 16 + 15 = 240 + 15 = 255 — сходится. Такая проверка занимает секунду и спасает от самой частой ошибки — перепутанного порядка остатков.

Обратный пример — из двоичной в десятичную. Возьмём 1011₂: это 1×2³ + 0×2² + 1×2¹ + 1×2⁰ = 8 + 0 + 2 + 1 = 11. Разряды нумеруются справа налево с нуля, и вес каждого следующего вдвое больше предыдущего — на этом построен весь перевод «в десятичку».

Десятичная система работает промежуточным пунктом и при переводе между «недесятичными» системами: 77₈ сначала становится 7×8 + 7 = 63₁₀, а уже потом делением на 2 превращается в 111111₂. Напрямую, минуя десятичную, переводить удобно только между системами, чьи основания — степени одного числа: 2, 4, 8, 16.

Быстрый перевод между двоичной и шестнадцатеричной

Каждая шестнадцатеричная цифра — это ровно четыре двоичных разряда, тетрада. Чтобы перевести двоичное число в hex, разбейте его справа налево на группы по четыре бита и замените каждую группу соответствующей цифрой. Например, 1010 1111 — это A и F, то есть AF₁₆. Обратный перевод такой же: каждую hex-цифру заменяете четвёркой битов. Для восьмеричной системы работает то же правило, но с триадами — группами по три бита: 111 111 111₂ = 777₈.

Почему программисты любят hex

Байт — это 8 бит, то есть ровно две шестнадцатеричные цифры. Поэтому содержимое памяти, цвета в CSS (например, #FF8800), коды символов и адреса записывают в hex: компактно и без потери связи с двоичным видом. Запись FF гораздо короче 11111111, а перевести её в уме — дело пары секунд, если помнить тетрады. Восьмеричная система тоже жива: права доступа в Linux вроде 755 — это три триады битов.

Как не запутаться в буквах и основаниях

  • В шестнадцатеричной системе A = 10, B = 11, C = 12, D = 13, E = 14, F = 15. Регистр букв не важен.
  • Цифра не может быть больше или равна основанию: в восьмеричной системе не бывает цифры 8, в двоичной — цифры 2.
  • Основание записывают нижним индексом: 1011₂, 755₈, 255₁₀. Без индекса обычно подразумевают десятичную систему, а в коде шестнадцатеричную помечают префиксом 0x.

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

Частые вопросы

Какие системы счисления самые распространённые?

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

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

Цифры от 0 до 9 и буквы от A до F, где A соответствует 10, B — 11 и так далее до F, равного 15. Буквы можно писать как заглавными, так и строчными.

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

Каждая hex-цифра точно соответствует четырём битам, а байт записывается ровно двумя цифрами. Это удобно для цветов, адресов памяти и байтовых значений.

Как быстро перевести двоичное число в десятичное в уме?

Сложите степени двойки там, где стоят единицы: разряды справа налево — это 1, 2, 4, 8, 16 и так далее. Например, 1101₂ = 8 + 4 + 1 = 13.

Что означают записи FF₁₆ и 0xFF?

Это одно и то же число в шестнадцатеричной системе. Нижний индекс и префикс 0x — два способа указать основание; префикс принят в большинстве языков программирования.

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

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