Перевод чисел в различных системах счисления.
Для перевода числа из десятичной системы счисления в систему счисления с другим основанием поступают следующим образом:
а) Для перевода целой части числа его делят нацело на основание системы, фиксируя остаток. Если неполное частное не равно нулю продолжают делить его нацело. Если равно нулю остатки записываются в обратном порядке.
б) Для перевода дробной части числа ее умножают на основание системы счисления, фиксируя при этом целые части полученных произведений. Целые части в дальнейшем умножении не участвуют. Умножение производиться до получения 0 в дробной части произведения или до заданной точности вычисления.
в) Ответ записывают в виде сложения переведенной целой и переведенной дробной части числа.
Пример: перевод чисел из десятичной системы счисления в двоичную систему счисления.
Перевести число 75,375 в двоичную систему счисления.
а) переведем в двоичную систему целую часть - 75
75 : 2 = 37 ( 1 )
37 : 2 = 18 ( 1 )
18 : 2 = 9 ( 0 )
9 : 2 = 4 ( 1 )
4 : 2 = 2 ( 0 )
2 : 2 = 1 ( 0 )
1 : 2 = 0 ( 1 )
Закончив деление, запишем остатки в обратном порядке, и получим искомый результат:
75=10010112
б) переведем в двоичную систему дробную часть - 0,375
0,375
2
0,750
2
1,500
2
1,000
Выделенные числа запишем в естественном порядке и получим дробное число в двоичной системе счисления:
0,375 = 0,0112
в) получив целую и дробную части числа в двоичном виде (75=10010112 и 0,375 = 0,0112 ) можем сделать вывод:
75,375=75+0,375 = 10010112+0,0112=1001011,0112, значит 75,375=1001011,0112
Пример: перевод чисел из десятичной системы счисления в шестнадцатеричную систему счисления.
Представить десятичное число 157,23 в шестнадцатеричной системе счисления. Целая часть числа равна 157, дробная - 0,23.
а) переведем в двоичную систему целую часть - 157
157 : 16 = 9 (13 или D)
9 : 16 = 0 ( 9 )
Закончив деление, запишем остатки в обратном порядке, и получим искомый результат:
157=9D 16
а) переведем в двоичную систему дробную часть - 0,23.
Результат умножения 0,23 на 16 равен 3,68. Целая часть этого числа равна 3, значит первый коэффициент дробной части равен 3. Дробная часть равна 0,68. Снова умножим ее на основание системы: 0,68*16=10,88. Целая часть равна 10 или в шестнадцатеричной системе А. Дробная часть равна 0,88, она опять умножается на 16 и так далее.
Выпишем весь процесс:
0,23 * 16 = 3,68 ( 3 )
0,68 * 16 = 10,88 ( А )
0,88 * 16 = 14,08 ( Е )
0,08 * 16 = 1,28 ( 1 )
0,28 * 16 = 4,48 ( 4 )
0,48 * 16 = 7,68 ( 7 )
0,68 * 16 = 10,88 ( А )
0,88 * 16 = 14,08 ( Е )
0,08 * 16 = 1,28 ( 1 )
0,28 * 16 = 4,48 ( 4 )
0,48 * 16 = 7,68 ( 7 )
0,68 * 16 = 10,88 ( А )
0,88 * 16 = 14,08 ( Е )
Замечаем, что последовательность чисел 0,68; 0,88; 0,08; 0,28; 0,48 повторилась уже 2 раза и начинается в третий раз. Получается бесконечная шестнадцатеричная дробь в которой период (бесконечно повторяемая последовательность цифр) заключен в скобки:
157,23=9D,3(АЕ147)16
Для перевода числа в десятичную систему счисления из системы счисления с другим основанием каждый коэффициент переводимого числа умножается на основание системы в степени соответствующей этому коэффициенту и полученные результаты складываются.
Пример: перевод чисел из двоичной системы счисления в десятичную систему счисления
Перевести число 1001011,0112 в десятичную систему счисления
1001011,0112 = 1*26+0*25+0*24+1*23+0*22+1*21+1*20+0*2-1+1*2-2+1*2-3 =64+8+2+1+0,25+0,125=75,375
Двоичная система проста, так как использует две цифры, но громоздка. В десятичной хранить числа в памяти возможно, но сложен перевод из десятичной в двоичную и обратно и занимает много времени. Необходима система счисления компактнее двоичной, но с более простым переводом.
23 = 8 0, 1, 2, 3, 4, 5, 6, 7.
Для перевода из двоичной системы счисления в восьмеричную необходимо разбить данное двоичное число вправо и влево от запятой на триада ( три цифры ) и представить каждую триаду соответствующим восьмеричным кодом. При невозможности разбиения на триады допускается добавление нулей слева в целой записи числа и справа в дробной части числа. Для обратного перевода каждую цифру восьмеричного числа представляют соответствующей триадой двоичного кода.
Десятичная система счисления |
Двоичная система счисления |
Восьмеричная система счисления |
Шестнадцатеричная система счисления |
|
Триады (0-7) |
Тетрады (0-15) |
|||
0 |
000 |
0000 |
00 |
0 |
1 |
001 |
0001 |
01 |
1 |
2 |
010 |
0010 |
02 |
2 |
3 |
011 |
0011 |
03 |
3 |
4 |
100 |
0100 |
04 |
4 |
5 |
101 |
0101 |
05 |
5 |
6 |
110 |
0110 |
06 |
6 |
7 |
111 |
0111 |
07 |
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 |
16 |
10000 |
20 |
10 |
Пример: перевод чисел из двоичной системы счисления в восьмеричную систему счисления.
Переведем число 1001011,0112 в восьмеричную систему счисления. Разобьем данное число на триады, приписав слева недостающие нули:
001 001 011 , 011
1 1 3 , 3
и заменим каждую триаду соответствующим восьмеричным кодом (см. таблицу). Можем сделать вывод:
1001011,0112 = 113,38
Пример: перевод чисел из восьмеричной системы счисления в двоичную систему счисления.
Переведем число 347,258 в двоичную систему счисления. Каждую цифру восьмеричного числа заменим соответствующей триадой (см. таблицу).
3 4 7 , 2 5
011 100 111 , 010 101
Запишем ответ, удалив нули слева в записи числа:
347,258 = 11100111,0101012
Восьмеричная система компактнее двоичной и с более простым переводом чисел, однако, современные требования к ЭВМ заставили создавать шестнадцатеричную систему счисления.
24 = 16 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F.
Правило перевода из двоичной системы счисления в шестнадцатеричную: разбить двоичное число вправо и влево от запятой на тетрады ( по 4 цифры ) и представить каждую тетраду соответствующим шестнадцатеричным кодом. При невозможности разбиения на тетрады допускается добавление нулей слева в целой записи числа и справа в дробной части числа. Для обратного перевода каждую цифру шестнадцатеричного числа представляют тетрадой двоичного кода.
Пример: перевод чисел из двоичной системы счисления в шестнадцатеричную систему счисления.
Переведем число 1001011,0112 в шестнадцатеричную систему счисления. Разобьем данное число на тетрады, приписав слева в целой части, и справа в дробной части недостающие нули:
0100 1011, 0110
4 В , 6
и заменим каждую тетраду соответствующим шестнадцатеричным кодом (см. таблицу). Можем сделать вывод:
1001011,0112 = 4В,616
Пример: перевод чисел из шестнадцатеричной системы счисления в двоичную систему счисления.
Переведем число А4F,C516 в двоичную систему счисления. Каждую цифру шестнадцатеричного числа заменим соответствующей тетрадой (см. таблицу).
A 4 F , C 5
1010 0100 1111 , 1100 0101
Запишем ответ, удалив нули слева в записи числа:
A4F,C516 = 101001001111,110001012