Двоичная и шестнадцатеричная системы

Шестнадцатеричная система связана с двоичной очень просто: \(16 = 2^4\), поэтому каждая hex-цифра соответствует четырём битам.

Тетрада (nibble) — группа из 4 бит. Каждой тетраде соответствует одна шестнадцатеричная цифра.

Группировка битов

Чтобы перевести двоичное число в шестнадцатеричное:

  1. Группируем биты справа налево по 4.
  2. Если слева осталось меньше 4 бит — дополняем нулями.
  3. Каждую тетраду заменяем hex-цифрой.

Например, \((110101100011)_2 = (D63)_{16}\).

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

Hex Bin
0 0000
1 0001
2 0010
3 0011
4 0100
5 0101
6 0110
7 0111
8 1000
9 1001
A 1010
B 1011
C 1100
D 1101
E 1110
F 1111

Обратный перевод

Чтобы перевести из шестнадцатеричной в двоичную, просто заменяем каждую hex-цифру её 4-битным кодом.

Например, \((3A7)_{16} = (0011\ 1010\ 0111)_2\).

Замечание про ведущие нули

При группировке двоичного числа нули слева можно добавлять без изменения значения. При обратном переводе ведущие нули обычно опускают.

Задачи для тренировки

1. Переведите в шестнадцатеричную систему:

a) \((11101100)_2\)

b) \((1011011)_2\)

Ответ

a) \((EC)_{16}\).

b) \((1011011)_2 = (0101\ 1011)_2 = (5B)_{16}\).


2. Переведите в двоичную систему:

a) \((2AF)_{16}\)

b) \((90)_{16}\)

Ответ

a) \((2AF)_{16} = (0010\ 1010\ 1111)_2\).

b) \((90)_{16} = (1001\ 0000)_2\).


3. Переведите \((100110111001)_2\) в шестнадцатеричную систему.

Ответ

\((1001\ 1011\ 1001)_2 = (9B9)_{16}\).