Двоичная и шестнадцатеричная системы
Шестнадцатеричная система связана с двоичной очень просто: \(16 = 2^4\), поэтому каждая hex-цифра соответствует четырём битам.
Тетрада (nibble) — группа из 4 бит. Каждой тетраде соответствует одна шестнадцатеричная цифра.
Группировка битов
Чтобы перевести двоичное число в шестнадцатеричное:
- Группируем биты справа налево по 4.
- Если слева осталось меньше 4 бит — дополняем нулями.
- Каждую тетраду заменяем 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}\).