Перевод между системами счисления
Часто нужно переводить числа из одной системы в другую. Ниже — базовые приёмы, которые используются чаще всего.
Из \(b\) в десятичную
Используем разложение по степеням основания:
Например, \((243)_5 = 2\cdot 5^2 + 4\cdot 5 + 3 = 73\).
Из десятичной в \(b\)
Используем деление с остатком:
- Делим число на основание \(b\), записываем остаток.
- Делим полученное частное на \(b\), снова записываем остаток.
- Повторяем, пока частное не станет нулём.
- Записываем остатки снизу вверх — это и есть запись числа в новой системе.
Задача:
Переведите \(157_{10}\) в двоичную систему.
Решение:
Остатки снизу вверх дают \(10011101_2\).
Дробная часть
Для дробной части используем умножение на основание:
- Умножаем дробную часть на \(b\).
- Целая часть результата — следующая цифра.
- Оставшаяся дробная часть идёт на следующий шаг.
Задача:
Переведите \(0.375_{10}\) в двоичную систему.
Решение:
Получаем \(0.011_2\).
Если дробная часть стала нулём, перевод завершён. Если дробная часть начинает повторяться, запись периодическая, и обычно берут нужное число знаков.
Смешанное число
Переводим целую и дробную части отдельно, затем объединяем.
Например, \(13.625_{10} = 1101.101_2\).
Быстрые переводы для оснований 2, 8, 16
Если основание — степень двойки, удобно группировать двоичную запись:
- для восьмеричной — по 3 бита,
- для шестнадцатеричной — по 4 бита.
Таблица для шестнадцатеричных цифр:
| 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 |
Задача:
Переведите \((110101011)_2\) в шестнадцатеричную систему.
Решение:
Группируем по 4 бита справа налево: \(0001\ 1010\ 1011\).
Получаем \((1AB)_{16}\).
Задачи для тренировки
1. Переведите в десятичную систему:
a) \((243)_5\)
b) \((110011010)_2\) (сначала в восьмеричную, затем в десятичную)
Ответ
a) \(73\).
b) \((110\ 011\ 010)_2 = (632)_8 = 6\cdot 64 + 3\cdot 8 + 2 = 410\).
2. Переведите \(345_{10}\) в систему с основанием \(6\).
Ответ
\(345_{10} = (1333)_6\).
3. Переведите \((7B)_{16}\) в двоичную систему.
Ответ
\((7B)_{16} = (0111\ 1011)_2 = (1111011)_2\).
4. Переведите \(0.625_{10}\) в двоичную систему.
Ответ
\(0.625_{10} = 0.101_2\).
5. Переведите \(21.75_{10}\) в двоичную систему.
Ответ
\(21.75_{10} = 10101.11_2\).