Необходимость перевода чисел из одной системы счисления в другую объясняется тем, что компьютер работает в двоичной системе, а вводим мы данные и получаем их на экран и принтер в десятичной системе счисления. Поэтому необходимо преобразовывать вводимые данные из десятичной системы счисления в двоичную, а выводимые данные – из двоичной в десятичную. В некоторых случаях возникает необходимость преобразовывать десятичные числа в шестнадцатеричные и шестнадцатеричные в десятичные. Преобразование чисел выполняется автоматически по приведенным ниже правилам.
1. Преобразование из десятичной системы счисления в двоичную (преобразование из 10 в 2).
Число последовательно делится на основание новой системы 2 до тех пор, пока делитель не станет меньше делимого, после чего полученные нули и единицы (т.е. все остатки) выписываются в обратном порядке. Напомним, что при переводе чисел из десятичной системы в двоичную систему остатками могут быть только нули и единицы.
Пример перевода десятичного числа 12 в двоичную систему счисления приведен на рис.1.15.
|
|
Рис.1.15. Преобразование числа 12 из десятичной системы счисления в двоичную
Дробная часть десятичного числа преобразуется по другому правилу: дробную часть необходимо последовательно умножать на число 2, записывая получаемые в результате умножения целые части, после чего выписать целые части в прямом порядке. Процесс умножения продолжается до тех пор, пока дробная часть не станет равной нулю либо пока не будет достигнута заданная точность.
Пример перевода десятичного числа 0,25 в двоичную систему счисления приведен на рис.1.16.
В результате получаем двоичное число 01, т.е. 0,2510 = 0.012.
2. Преобразование двоичных чисел в десятичные.
|
Рис.1.16. Перевод числа 0,25 в двоичную систему счисления
Для преобразования двоичного числа в десятичное необходимо записать сумму членов ряда и вычислить по следующему правилу:
a1*2n-1+a2*2n-2+…+an-1*21+an*20 , an+1*2-1+an+2*2-2+… [1]
где: а – цифра двоичного числа (0 или 1),
n - количество двоичных разрядов в целой части числа.
Пример перевода двоичного числа 1010 (здесь n=4) в десятичную систему (используем первую часть выражения [1] – до запятой):
10102 = 1*23 + 0*22 + 1*21 + 0*20 = 8+0+2+0 = 1010
Пример перевода дробной части двоичного числа 0.01 в десятичную систему счисления (используем вторую часть выражения [1] – после запятой):
|
|
01 = 0*2-1 + 1*2-2 = 0 + ¼ = 0,25. Получаем 0.012 = 0,2510.
Для перевода десятичных чисел в любую другую систему счисления используется то же правило, что и в пункте 1 данного параграфа, только последовательно необходимо делить на основание этой другой системы: в восьмеричную – на число 8, в шестнадцатеричную – на число 16. Напомним, что в восьмеричной системе для записи используются цифры от 0 до 7, а в шестнадцатеричной – цифры от 0 до 9 и буквы латинского алфавита A, B, C, D, E, F (букве А соответствует десятичное число 10, букве В – число 11 и т.д.). Так, например, одно и тоже десятичное число 91 будет представлено в различных системах счисления (двоичной, четверичной, восьмеричной, десятичной и шестнадцатеричной) следующим образом:
10110112 = 11234 = 1338 = 9110 = 5B16
Обратный перевод чисел из некоторой системы счисления в десятичную выполняется также в соответствии с правилом [1], только в выражении записывается не множитель 2, а основание данной системы счисления (из четверичной – 4, из восьмеричной – 8 и т.д.).
Для быстрого перевода чисел рекомендуется использовать таблицу 1.2 (для чисел от 0 до 15) или компьютерную программу Калькулятор (в режиме Инженерный) либо воспользоваться функциями преобразования пакета Excel.
Таблица 1.2
Десятичн. число | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
Двоичное число | 0 | 1 | 10 | 11 | 100 | 101 | 110 | 111 |
Шестнадц. число | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
Продолжение таблицы 1.2
8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |
1000 | 1001 | 1010 | 1011 | 1100 | 1101 | 1110 | 1111 |
8 | 9 | A | B | C | D | E | F |
Часто бывает необходимым преобразовывать шестнадцатеричное число в двоичное и обратно. Для этого достаточно каждую цифру шестнадцатеричного числа записать четырьмя двоичными разрядами – тетрадой. И обратно – в двоичном числе справа налево выделить тетрады и заменить их цифрами шестнадцатеричной системы счисления.
Пример. Преобразовать число 3С12А в двоичную систему и обратно. Записываем каждую цифру четырьмя двоичными разрядами: 0011 1100 0001 0010 1010. Отбрасываем левые незначащие нули и получаем двоичное число 111100000100101010. Обратно: отделяем справа налево по 4 разряда (левые два разряда 11 – неполная тетрада) и заменяем их цифрами шестнадцатеричной системы – 3С12А.
Аналогично выполняется преобразование восьмеричного числа в двоичное и обратно. Разница состоит в том, что вместо тетрады используется триада – по три двоичных разряда на каждую цифру восьмеричного числа.