Как перевести число из одной системы счисления в другую
Чтобы понять, как перевести число из одной системы счисления в другую, необходимо использовать алгоритмы разложения по степеням основания или последовательного деления и умножения. В позиционных системах значение цифры зависит от её места в числе, что позволяет применять универсальные математические формулы для преобразования значений между двоичной, восьмеричной, десятичной и шестнадцатеричной форматами.
Оглавление
Основы позиционных систем счисления
Позиционная система счисления — это способ записи чисел, в котором значение каждой цифры определяется её позицией (разрядом). Основание системы равно количеству используемых в ней уникальных цифр. Любое число $A$ в системе с основанием $p$ можно представить в виде суммы:
$$A = a_n \cdot p^n + a_{n-1} \cdot p^{n-1} + ... + a_1 \cdot p^1 + a_0 \cdot p^0 + a_{-1} \cdot p^{-1} + ... + a_{-m} \cdot p^{-m}$$
где $a_i$ — цифры данной системы счисления.
Наиболее распространённые системы имеют следующие основания и наборы символов:
- Двоичная: основание 2, используются цифры 0 и 1.
- Восьмеричная: основание 8, используются цифры от 0 до 7.
- Десятичная: основание 10, используются цифры от 0 до 9.
- Шестнадцатеричная: основание 16, используются цифры 0–9 и буквы A–F.
Перевод из десятичной системы в другие
Для перевода целой части числа из десятичной системы в систему с основанием $p$ применяется метод последовательного деления. Число делят на основание $p$, записывая остатки от деления. Процесс продолжается до тех пор, пока частное не станет равным нулю. Результат формируется чтением остатков снизу вверх (от последнего полученного к первому).
Пример: Переведём число 25 в двоичную систему.
- $25 \div 2 = 12$ (остаток 1)
- $12 \div 2 = 6$ (остаток 0)
- $6 \div 2 = 3$ (остаток 0)
- $3 \div 2 = 1$ (остаток 1)
- $1 \div 2 = 0$ (остаток 1) Читаем остатки снизу вверх: $25_{10} = 11001_2$.
Для перевода дробной части используется метод последовательного умножения. Дробную часть умножают на основание $p$, записывая целые части полученных произведений. Процесс повторяют с новой дробной частью до получения нуля или достижения требуемой точности.
Пример: Переведём $0,625$ в двоичную систему.
- $0,625 \times 2 = 1,25$ (целая часть 1)
- $0,25 \times 2 = 0,5$ (целая часть 0)
- $0,5 \times 2 = 1,0$ (целая часть 1) Результат: $0,625_{10} = 0,101_2$.
Быстрый перевод между двоичной, восьмеричной и шестнадцатеричной
Перевод между системами, основания которых являются степенями двойки ($2^1, 2^3, 2^4$), выполняется через группировку битов без промежуточного перехода в десятичную систему.
Из двоичной в восьмеричную и шестнадцатеричную
Для перевода в восьмеричную систему двоичное число разбивают на группы по 3 цифры (триады): справа налево для целой части и слева направо для дробной. Каждую триаду заменяют соответствующей восьмеричной цифрой.
| Двоичная триада | Восьмеричная цифра |
|---|---|
| 000 | 0 |
| 001 | 1 |
| 010 | 2 |
| 011 | 3 |
| 100 | 4 |
| 101 | 5 |
| 110 | 6 |
| 111 | 7 |
Пример: $110101_2$. Разбиваем на триады: $110 | 101$. Получаем $6 | 5$. Итог: $65_8$.
Для перевода в шестнадцатеричную систему число разбивают на группы по 4 цифры (тетрады) по тому же принципу.
| Двоичная тетрада | Шестнадцатеричная цифра |
|---|---|
| 0000 – 1001 | 0 – 9 |
| 1010 | A |
| 1011 | B |
| 1100 | C |
| 1101 | D |
| 1110 | E |
| 1111 | F |
Пример: $11110101_2$. Разбиваем на тетрады: $1111 | 0101$. Получаем $F | 5$. Итог: $F5_{16}$.
Обратный перевод
Чтобы перевести число из восьмеричной или шестнадцатеричной системы в двоичную, достаточно заменить каждую цифру исходного числа на соответствующую ей двоичную триаду или тетраду.
Перевод между недесятичными системами
Если требуется перевести число между системами, основания которых не кратны степеням двойки (например, из троичной в пятеричную), процесс осуществляется либо через промежуточный перевод в десятичную систему, либо напрямую через операции деления и умножения на основание целевой системы.
Частые ошибки
- Неверное направление чтения остатков. При переводе целых чисел методом деления результат всегда читается от последнего остатка к первому (снизу вверх).
- Ошибка в группировке битов. При переводе из двоичной системы в восьмеричную или шестнадцатеричную разбиение на триады и тетрады должно начинаться от запятой (разделителя целой и дробной частей). Для целой части — справа налево, для дробной — слева направо.
- Использование запрещённых цифр. В восьмеричной системе нельзя использовать цифры 8 и 9, а в двоичной — любые цифры кроме 0 и 1.
FAQ
Как перевести дробное число, если умножение не даёт ноль? Если при последовательном умножении дробной части на основание системы не получается ноль, процесс продолжают до достижения заданной точности, отбрасывая оставшуюся дробную часть.
Можно ли перевести число из шестнадцатеричной системы в восьмеричную напрямую? Прямого метода замены групп битов между 16-й и 8-й системами нет. Наиболее надёжный способ — перевести число сначала в двоичную систему (через тетрады), а затем из двоичной в восьмеричную (через триады).
Зачем нужны буквы в шестнадцатеричной системе? Так как основание системы равно 16, а арабских цифр всего 10, для обозначения значений 10, 11, 12, 13, 14 и 15 используются первые шесть букв латинского алфавита: A, B, C, D, E, F.