Перевод чисел между системами счисления
Перевод числа между системами счисления — это запись одного и того же количества с помощью разных цифр и разрядов. На экзамене чаще всего требуется перевод между двоичной, десятичной, восьмеричной и шестнадцатеричной системами.
Основание и жазба числа
В позиционной системе счисления значение цифры зависит от её положения. Основание системы показывает, сколько разных цифр используется: от \(0\) до \(p-1\), где \(p\) — основание системы. Индекс внизу жазбалар обозначает основание: \(1011_2\), \(57_{10}\), \(2A_{16}\).
Целое число \(a_k a_{k-1}\ldots a_1 a_0\) в системе с основанием \(p\) означает сумму произведений цифр на соответствующие степени основания. Крайняя правая цифра имеет вес \(p^0=1\), следующая слева — \(p^1\), затем \(p^2\) и так далее.
| Система | Основание | Допустимые цифры |
|---|---|---|
| Двоичная | 2 | 0, 1 |
| Восьмеричная | 8 | 0–7 |
| Десятичная | 10 | 0–9 |
| Шестнадцатеричная | 16 | 0–9, A–F |
В шестнадцатеричной системе буквы обозначают цифры: \(A=10\), \(B=11\), \(C=12\), \(D=13\), \(E=14\), \(F=15\). Например, \(2F_{16}\) содержит цифру \(F\), то есть значение \(15\).
В системе с основанием \(p\) не может быть цифры, равной или большей \(p\). Поэтому жазба \(102_2\) неверна: цифра \(2\) недопустима в двоичной системе.
Перевод из любой системы в десятичную
Чтобы перевести целое число в десятичную систему, разложите его по разрядам и сложите произведения цифр на степени основания. Степени отсчитываются справа налево, начиная с нулевой.
Переведём \(3B_{16}\) в десятичную. Буква \(B\) имеет значение \(11\), поэтому \(3B_{16}=3\cdot16^1+11\cdot16^0=48+11=59_{10}\).
Для двоичных чисел полезно помнить степени двойки: \(2^0=1\), \(2^1=2\), \(2^2=4\), \(2^3=8\), \(2^4=16\), \(2^5=32\), \(2^6=64\), \(2^7=128\), \(2^8=256\). Это ускоряет устный подсчёт.
Чему равно число \(10110_2\) в десятичной системе?
Перевод из десятичной системы
Для перевода целого десятичного числа в систему с основанием \(p\) применяется метод последовательного деления. Число делят на \(p\), записывают остаток, частное снова делят на \(p\) и повторяют до получения нулевого частного. Жауап составляют из остатков снизу вверх, то есть в обратном порядке.
При каждом делении \(N\) на \(p\) остаток является очередной цифрой результата, начиная с младшей. Последний ненулевой остаток становится старшей цифрой.
Остатки при делении сверху вниз равны \(1,0,1,1,0,1,0,1\). Разворачиваем их порядок: \(10101101_2\). Проверка: \(128+32+8+4+1=173\).
Тот же алгоритм работает для любого основания. Например, для перевода в восьмеричную систему делят на \(8\), а для перевода в шестнадцатеричную — на \(16\). Остатки от \(10\) до \(15\) заменяют буквами \(A\)–\(F\).
Быстрые переводы между двоичной, восьмеричной и шестнадцатеричной системами
Основания \(8\) и \(16\) являются степенями двойки: \(8=2^3\), \(16=2^4\). Поэтому двоичное число можно переводить в восьмеричное группировкой по три бита, а в шестнадцатеричное — по четыре бита.
- Для перевода в восьмеричную систему разделите двоичную жазба справа налево на группы по 3 цифры.
- Для перевода в шестнадцатеричную систему разделите жазба справа налево на группы по 4 цифры.
- Если слева не хватает цифр до полной группы, добавьте ведущие нули.
- Каждую группу замените соответствующей цифрой новой системы.
| Двоичная группа | Восьмеричная цифра | Двоичная группа | Шестнадцатеричная цифра |
|---|---|---|---|
| 000–111 | 0–7 | 0000–1001 | 0–9 |
| — | — | 1010 | A |
| — | — | 1011 | B |
| — | — | 1100 | C |
| — | — | 1101 | D |
| — | — | 1110 | E |
| — | — | 1111 | F |
Переведём \(110101111_2\) в восьмеричную систему. Дополняем слева нулями и группируем: \(011\ 010\ 111\). Группы соответствуют цифрам \(3\), \(2\), \(7\), поэтому \(110101111_2=327_8\). Для шестнадцатеричной системы: \(0001\ 1010\ 1111=1AF_{16}\).
Обратный перевод выполняется заменой каждой восьмеричной цифры на три двоичных разряда, а каждой шестнадцатеричной — на четыре. Ведущие нули в итоговой записи обычно удаляют, если они не нужны для фиксированной длины двоичного слова.
Проверка результата и типичные ошибки
1. Остатки при последовательном делении читают сверху вниз, хотя нужно снизу вверх. 2. Нумерацию степеней начинают с \(1\), а не с \(0\). 3. Забывают заменить \(A\)–\(F\) значениями \(10\)–\(15\). 4. Используют недопустимую цифру, например \(8\) в восьмеричной системе. 5. При группировке битов объединяют их слева направо, но не дополняют левую группу нулями.
Переведите полученный результат обратно в исходную систему или разложите двоичную запись по степеням основания. При переводе в систему с основанием \(p\) результат должен содержать только цифры от \(0\) до \(p-1\).
Для больших чисел удобно использовать схему Горнера: разряды обрабатываются слева направо. Например, \(231_4=((2\cdot4+3)\cdot4+1)=45_{10}\). Такой способ уменьшает количество отдельных степеней и снижает риск ошибки.
Жылдам тест
Главное
- В позиционной записи цифра умножается на степень основания, соответствующую её разряду; крайний правый разряд имеет степень \(0\).
- Из любой системы в десятичную переводят разложением по степеням основания.
- Из десятичной системы переводят последовательным делением на новое основание; остатки читают снизу вверх.
- Для перевода между двоичной и восьмеричной системами используют группы по 3 бита, между двоичной и шестнадцатеричной — по 4 бита.
- Результат полезно проверять обратным переводом или сложением значений разрядов.