Перевод из двоичной в шестнадцатеричную

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

Перевод из двоичной в шестнадцатеричную

Введите двоичное число — результат и группировка по четыре бита появятся сразу.

Двоичное число Используйте 0 и 1. Дробную часть отделяйте запятой или точкой. Пробелы и символы подчёркивания можно оставить.

Для целой части группы считаются справа налево, для дробной — слева направо. Неполная группа дополняется нулями.

Результат

Здесь появится шестнадцатеричная запись.

Таблица соответствий
Каждая hex-цифра заменяет одну группу из четырёх битов
Двоичная группа Hex Двоичная группа Hex
0000 0 1000 8
0001 1 1001 9
0010 2 1010 A
0011 3 1011 B
0100 4 1100 C
0101 5 1101 D
0110 6 1110 E
0111 7 1111 F

Основное правило перевода

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

16 = 2⁴

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

Таблица соответствий

Двоичная группаHex-символДвоичная группаHex-символ
0000010008
0001110019
001021010A
001131011B
010041100C
010151101D
011061110E
011171111F

Буквы A–F обозначают значения от 10 до 15. Регистр не влияет на значение: A и a — одна и та же шестнадцатеричная цифра.

Пошаговый алгоритм

  1. Запишите двоичное число.
  2. Разделите его на группы по четыре разряда, начиная справа.
  3. Если левая группа содержит меньше четырёх битов, добавьте перед ней нули.
  4. Найдите для каждой группы соответствующий символ в таблице.
  5. Запишите символы подряд слева направо.

Пример 1: число 101101₂

Разбиваем запись справа налево:

10 1101

В первой группе не хватает двух разрядов, поэтому дополняем её слева:

0010 1101

По таблице:

0010 → 2
1101 → D

Ответ:

101101₂ = 2D₁₆

Префикс 0x часто используют в программировании для обозначения шестнадцатеричного числа. В таком формате результат будет записан как 0x2D.

Пример 2: длинная двоичная запись

Преобразуем число:

110101111001₂

Группировка уже не требует дополнения:

1101 0111 1001

Замена групп:

1101 → D
0111 → 7
1001 → 9

Получаем:

110101111001₂ = D79₁₆

Пример 3: неполная группа

Пусть дано число:

111₂

Добавляем один ноль слева:

0111

Группа 0111 соответствует цифре 7, поэтому:

111₂ = 7₁₆

Добавленные нули не меняют числового значения.

Почему не нужно сначала переводить число в десятичное

Можно использовать промежуточный способ:

  1. перевести двоичное число в десятичное;
  2. разделить десятичное число на 16 с остатками;
  3. заменить остатки от 10 до 15 буквами A–F.

Однако для перевода между основаниями 2 и 16 этот метод избыточен. Прямая группировка быстрее, проще и особенно удобна для длинных последовательностей битов. Она также уменьшает количество промежуточных вычислений и вероятность ошибки.

Перевод двоичной дроби

Для чисел с двоичной точкой применяется то же соответствие, но группы формируются по разные стороны от точки:

  • целую часть группируют справа налево;
  • дробную часть — слева направо;
  • неполную группу в дробной части дополняют нулями справа.

Например:

110,1011₂

Целая часть 110 превращается в 0110, а дробная уже содержит четыре разряда:

0110,1011

Соответствие:

0110 → 6
1011 → B

Результат:

110,1011₂ = 6,B₁₆

В компьютерной записи вместо запятой обычно используют точку: 6.B₁₆.

Как проверить результат

Для обратной проверки замените каждый символ шестнадцатеричного числа на четыре бита. Например:

3A7₁₆

расшифровывается так:

3 → 0011
A → 1010
7 → 0111

Получаем:

0011 1010 0111₂

Начальные нули можно убрать:

1110100111₂

Если исходная двоичная запись совпадает с этим числом, перевод выполнен правильно.

Частые ошибки

  • Группировка слева направо. Отсчёт всегда начинают с правого края целой части.
  • Удаление нулей внутри группы. Нельзя менять 0101 на 101: это разные по длине группы, хотя в данном случае значение одинаково только после правильного выравнивания.
  • Путаница букв и цифр. После 9 идут A, B, C, D, E, F, а не десятичные числа 10–15.
  • Неверное дополнение дробной части. Справа от двоичной точки нули добавляют справа, а не слева.
  • Смешение префиксов. 0b обычно обозначает двоичную запись, а 0x — шестнадцатеричную. Эти обозначения не входят в само значение числа.
  • Игнорирование знака. Для отрицательного числа знак «минус» сохраняется: -1010₂ = -A₁₆.

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

Где используется шестнадцатеричная запись

Шестнадцатеричная система делает длинные двоичные последовательности компактнее:

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

Например, байт 11111111₂ записывается как FF₁₆, а последовательность 11110000 10101010 01010101₂ — как F0AA55₁₆. Обратное преобразование выполняется по той же таблице: каждый символ заменяется четырьмя битами.

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

Почему одна шестнадцатеричная цифра заменяет четыре двоичных разряда?

Основание шестнадцатеричной системы равно 16, а 16 = 2⁴. Поэтому четыре двоичных разряда дают ровно 16 комбинаций — от 0000 до 1111. Каждая комбинация однозначно соответствует одной цифре или букве от 0 до F, благодаря чему преобразование выполняется без промежуточного перевода в десятичную систему.

Что делать, если в первой группе меньше четырёх битов?

Недостающие разряды добавляют слева нулями. Например, запись 101 преобразуется в 0101 и соответствует цифре 5. Эти нули не меняют значение числа, а только выравнивают двоичную запись по границе тетрады, то есть группы из четырёх битов.

Имеет ли значение регистр букв A–F в результате?

Нет, значение одинаково записывается как A или a, B или b и так далее до F или f. В программном коде регистр иногда выбирают по принятому стилю или требованиям конкретного формата. Если дополнительных условий нет, обычно используют прописные буквы: A, B, C, D, E, F.

Как проверить правильность полученного шестнадцатеричного числа?

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

Можно ли преобразовать двоичную дробь таким же способом?

Да. Целую часть группируют справа налево, а дробную — от двоичной точки слева направо. Если последняя дробная группа неполная, нули добавляют справа. Например, 10,11₂ превращается в 0010,1100₂ и записывается как 2,C₁₆.