Интерес к двоичной системе счисления вызван тем, что именно эта система используется для представления чисел в компьютере. Однако двоичная запись оказывается громоздкой, поскольку содержит много цифр, и, кроме того, она плохо воспринимается и запоминается человеком из-за зрительной однородности (все число состоит из нулей и единиц). Поэтому в нумерации ячеек памяти компьютера, записи кодов команд, нумерации регистров и устройств и пр. используются системы счисления с основаниями 8 и 16; выбор именно этих систем счисления обусловлен тем, что переход от них к двоичной системе и обратно осуществляется, как будет показано ниже, весьма простым образом.
Двоичная система счисления имеет основанием 2 и, соответственно, 2 цифры: 0 и 1.
Восьмеричная система счисления имеет основание 8 и цифры 0, 1.....7.
Шестнадцатеричная система счисления имеет основание 16 и цифры 0, 1, ..., 9, А, В, С, D, Е, F.
При этом знак «А» является 16-ричной цифрой, соответствующей числу 10 в десятичной системе; В16=1110;С16=120;D16=1310;Е16=1410;F16=1510. Другими словами, в данном случае А ... F
- это не буквы латинского алфавита, а цифры 16-ричной системы счисления и поэтому они имеют только такое начертание (не могут быть представлены в виде, например, соответствующих строчных букв, как в текстах).
Пользуясь алгоритмами, сформулированными в предыдущем разделе, можно заполнить табл. 4.1.
Таблица 4.1. Представление чисел в системах счисления
10-ная | 2-ная | 8-ричная | 16-ричная |
---|---|---|---|
0 | 0 | 0 | 0 |
1 | 1 | 1 | 1 |
2 | 10 | 2 | 2 |
3 | 11 | 3 | 3 |
4 | 100 | 4 | 4 |
5 | 101 | 5 | 5 |
6 | 110 | 6 | 6 |
7 | 111 | 7 | 7 |
8 | 1000 | 10 | 8 |
9 | 1001 | 11 | 9 |
10 | 1010 | 12 | A |
11 | 1011 | 13 | B |
12 | 1100 | 14 | C |
13 | 1101 | 15 | D |
14 | 1110 | 16 | E |
15 | 1111 | 17 | F |
Существуют две важных теоремы, на основании которых выполняются преобразования. Мы примем их без доказательства и приведем несколько примеров.
Теорема 1. Для преобразования целого числа Zp→Zq в том случае, если системы счисления связаны соотношением q=рr, где r - целое число большее 1, достаточно Zp разбить справа налево на группы по r цифр и каждую из них независимо перевести в систему q.
Пример. Выполнить преобразование Z2=1100012→Z8. Исходное число разбивается на группы по три разряда справа налево (8 = 23, следовательно, r=3) и каждая тройка в соответствии с таблицей 4.1. переводится в 8-ричную систему счисления независимо от остальных троек:
Следовательно, 1100012=618. Аналогично, разбивая Z2 на группы по 4 двоичные цифры и дополняя старшую группу незначащими нулями слева, получим 1100012=3116.
Теорема 2. Для преобразования целого числа Zp→Zq в том случае, если системы счисления связаны соотношением р=qr, где r - целое число большее 1, достаточно каждую цифру Zp заменить соответствующим r-разрядным числом в системе счисления q, дополняя его при необходимости незначащими нулями слева до группы в r цифр.
Пример. Выполнить преобразование D316→Z2.
Переходы Z8→Z16 и Z16→Z8, очевидно, удобнее осуществлять через промежуточный переход к двоичной системе. Например,
1238=0010100112=5316.
Представление чисел в различных системах счисления | Кодирование чисел в компьютере и действия над ними |