Лекция

Тема: «Перевод чисел десятичной системы счисления в другие»

План

1. Перевод чисел десятичной системы счисления в другие

1.1. Перевод целой части

1.2. Перевод дробной части

1.3. Перевод числа с целой и дробной частью

2. Перевод из двоичной системы в восьмеричную

3. Перевод из двоичной системы в шестнадцатеричную

4. Перевод из восьмеричной системы в двоичную

5. Перевод из шестнадцатеричной системы в двоичную

6. Перевод из восьмеричной системы в шестнадцатеричную и наоборот

 

 

Вспомним таблицу степеней чисел 2, 8, 16:

Степени числа 16

Степени числа 8

Степени числа 2

161 = 16

81 = 8

21 = 2

162 = 256

82 = 64

22 = 4

163 = 4096

83 = 512

23 = 8

164 = 65536

84 = 4096

24 = 16

165 = 1048576

85 = 32768

25 = 32

 

 

26 = 64

 

 

27 = 128

 

 

28 = 256

 

 

29 = 512

 

 

210 = 1024

 

Любое число в степени 0 равно 1

а0=1

 

Алгоритм перевода чисел из одной системы счисления в другую ПСС

Из десятичной системы счисления:

 

1. Перевод чисел десятичной системы счисления в другие

1.1. Перевод целой части

Правило 1. Для того, чтобы перевести число из десятичной системы счисления, в любую другую, нужно выполнять целочисленное деление исходного числа на основание той системы счисления, в которую нужно перевести число. При этом важен остаток от деления и частное. Частное нужно делить на основание до тех пор, пока частное станет меньше основания. После этого все остатки нужно выписать в обратном порядке - это и будет число в новой системе счисления.


Например, перевод - числа 25 из десятичной системы счисления в двоичную будет выглядеть следующим образом:

 

Выписав остатки в обратном порядке, получим 2510=110012.

Перевод из десятичной системы счисления в любую другую систему счисления производится по абсолютно точно таким же правилам. Вот пример перевода 39310 в шестнадцатеричную систему счисления:


 

Выписав остатки в обратном порядке, получим 39310=18916.

Нужно понимать, что остатки получаются в десятичной системе счисления. При делении на 16 могут появиться остатки не только от 0 до 9, но также и остатки от 10 до 15. Каждый остаток - это всегда ровно одна цифра в той системе счисления, в которую осуществляется перевод.

Например, если при переводе в шестнадцатеричную систему счисления Вы получили такие остатки (выписаны в порядке, как они должны быть записаны в числе): 10, 3, 15, 7, то в шестнадцатеричной системе счисления этой последовательности остатков будет соответствовать число A3F716 (некоторые по ошибке записывают число как 10315716 - понято же, что это совсем другое число, и что если так делать, то получится, что ни в каком шестнадцатеричном числе не появится цифры от A до F).

 

Примеры

 

17810 = 101100102                       6310 = 001111112                         810 = 000010002

20910 =110100012                        2510 = 000110012                         24110 = 111100012.

5678 = 37510                                    48610 = 7468                                9810 = 1428

49510 = 1EF16                                 4D86B16 = 31754710                   51216 = 129810                                A516 = 16510

 

1.2. Перевод дробной части

Правило 2. При переводе дробной части, в отличие от перевода целой части – нужно не делить, а умножать на основание той системы счисления, в которую мы переводим. При этом каждый раз отбрасываются целые части, а дробные части – снова умножаются. Собрав целые части в том порядке, как они были получены – получается дробная часть числа в нужной системе счисления.

Одна операция умножения даёт ровно один дополнительный знак в системе счисления, в которую осуществляется перевод.

При этом существует два условия завершения процесса:

1) в результате очередного умножения Вы получили ноль в дробной части. Понятно, что дальше этот ноль сколько ни умножай – он всё равно останется нулём. Это означает, что число перевелось из десятичной системы счисления в нужную точно.

2) не все числа возможно перевести точно. В таком случае обычно переводят с некоторой точностью. При этом сначала определяют, сколько знаков после запятой будет нужно – именно такое количество раз и нужно будет выполнить операцию умножения.

Вот пример перевода числа 0.3910 в двоичную систему счисления. Точность – 8 разрядов (в данном случае точность перевода выбрана произвольно):

 

 

Если выписать целые части в прямом порядке, то получим 0.3910=0.011000112.

Самый первый ноль (на рисунке перечёркнут синим) выписывать не нужно - так как он относится не к дробной части, а к целой. Некоторые по ошибке записывают этот ноль после запятой, когда выписывают результат.

Вот так будет выглядеть перевод числа 0.3910 в шестнадцатеричную систему счисления. Точность - 8 разрядов в данном случае точность снова выбрана произвольно:

 

Если выписать целые части в прямом порядке, то получим 0.3910=0.63D700A316.

При этом Вы, наверное, заметили, что целые части при умножении получаются в десятичной системе счисления. Эти целые части, полученные при переводе дробной части числа следует интерпретировать точно так же, как и остатки при переводе целой части числа. То есть, если при переводе в шестнадцатеричную систему счисления целые части получились в таком порядке: 2, 13, 8, 10, то соответствующее число будет равно 0.2D8A16 (а не 0.21381016).

 

0,812510 = 0,11012                                         0,7510=0,112                                       0,562510 = 0,10012

0,5210 = 0,412178 (5 разрядов)                    0,012510=0,006318                             0,602510 = 0,4643658 (6 разр)

0,012510 = 0,00666616 (8 разрядов)             0,2810=0,47AE116 (5 разр)               0,51510 = 0,83D70A16 (8 разр)

 

1.3. Перевод числа с целой и дробной частью

Правило 3. Чтобы выполнить перевод числа с целой и дробной частью, нужно отдельно перевести целую часть, а отдельно – дробную, и поэтом эти две части записать вместе.

Например, 25.3910=11001.011000112

124,2510 = 174,28                          124,2510 = 7C,2616

 

2. Перевод из двоичной системы в восьмеричную

Правило 4. Для перевода в восьмеричную систему нужно разбить двоичное число на группы по 3 цифры (триады) справа налево. В последней (самой левой) группе вместо недостающих цифр поставить слева нули.

 

Способ 1:

Для каждой полученной группы произвести умножение каждого разряда на 2n, где n - номер разряда.

11012 = (001) (101) = (0*22 + 0*21 + 1*20) (1*22 + 0*21 + 1*20) = (0+0+1) (4+0+1) = (1) (5) = 158

 

Способ 2:

Заменить триады на соответствующие цифры восьмеричной системы, используя таблицу триад:

 

Триада

000

001

010

011

100

101

110

111

Цифра

0

1

2

3

4

5

6

7

 

10 111 0102 = (010) (111) (010) = 2728

111 100 1102 = 111 100 110 = 7468

11 000 111 0112 = (011) (000) (111) (011) = 30738

1 101 011,001 012 = (001) (101) (011),(001)(010) = 153,128

11 100 111,112 = (011) (100) (111),(110) = 347,68

 

3. Перевод из двоичной системы в шестнадцатеричную

Правило 5. Разбиваем число на группы по 4 цифры (тетрады) справа налево. Последнюю (левую) группу дополним при необходимости нулями.

Способ 1:

Внутри каждой полученной группы произведем умножение каждой цифры на 2n, где n - номер разряда, и сложим результаты.

1 10102 = (0001) (1010) = (0*23 + 0*22 + 0*21 + 1*20) (1*23 + 0*22 + 1*21 + 0*20) = (0+0+0+1) (8+0+2+0) = (1) (10) = 1A16

 

Способ 2:

Заменим тетрады на соответствующие цифры шестнадцатеричной системы, используя таблицу тетрад:

 

Тетрада

0000

0001

0010

0011

0100

0101

0110

0111

1000

1001

1010

1011

1100

1101

1110

1111

Цифра

0

1

2

3

4

5

6

7

8

9

A

B

C

D

E

F

 

1 0111 11002 = (0001) (0111) (1100) = 17C16

1 1110 01102 = (0001) (1110) (0110) = 1E616

110 0011 10112 = (0110) (0011) (1011) = 63B16

0100 1010 1100 0011 01012 = 4АС3516

011 11112 = (0011) (1111) = 3F6

 

4. Перевод из восьмеричной системы в двоичную

Способ 1:

Каждый разряд восьмеричного числа будем делить на 2 и записывать остатки в обратном порядке, формируя группы по 3 разряда двоичного числа. Если в группе получилось меньше 3 разрядов, тогда дополняем нулями. Записываем все группы по порядку, отбрасываем ведущие нули, если имеются, и получаем двоичное число.

Возьмем число 438.

Делим последовательно 4 на 2 и получаем остатки 0,0,1. Записываем их в обратном порядке. Получаем 100. Делим последовательно 3 на 2 и получаем остатки 1,1. Записываем их в обратном порядке и дополняем ведущими нулями до трех разрядов. Получаем 011. Записываем вместе и получаем 100 0112

Способ 2:

Используем таблицу триад:

 

Триада

000

001

010

011

100

101

110

111

Цифра

0

1

2

3

4

5

6

7

 

Правило 6. Каждую цифру исходного восьмеричного числа заменяется на соответствующие триады. Ведущие нули самой первой триады отбрасываются.

3518 = (011) (101) (001) = 0111010012 = 111010012

 

5. Перевод из шестнадцатеричной системы в двоичную

Способ 1:

Аналогично переводу из восьмеричной в двоичную, только группы по 4 разряда.

Способ 2:

Используем таблицу тетрад:

 

Тетрада

0000

0001

0010

0011

0100

0101

0110

0111

1000

1001

1010

1011

1100

1101

1110

1111

Цифра

0

1

2

3

4

5

6

7

8

9

A

B

C

D

E

F

 

Правило 7. Каждую цифру исходного числа заменяется на соответствующие тетрады. Ведущие нули самой первой тетрады отбрасываются.

D816 = (1101) (1000) = 110110002

2AC0F7416 = 0010 1010 1100 0000 1111 0111 0100 = 101010110000001111011101002

 

6. Перевод из восьмеричной системы в шестнадцатеричную и наоборот

Такую конвертацию можно осуществить через промежуточное десятичное или двоичное число.

Правило 8. То есть исходное число сначала перевести в десятичное (или двоичное), и затем полученный результат перевести в конечную систему счисления.

 

Выполните самостоятельно задания:

1.      Запишите число в развернутой форме: 1110,0012.

2.      Выполните перевод чисел из одной системы счисления в другую:

1.      437,4510 – в двоичную, восьмеричную, шестнадцатеричную системы счисления с точностью до четырех знаков после запятой;

2.      101011110112 – в восьмеричную, десятичную, шестнадцатеричную системы счисления;

3.      617,48 – в двоичную, десятичную системы счисления;

4.      АС516 – в двоичную, восьмеричную, десятичную системы счисления.

 

1.      Запишите число в развернутой форме: 10110,0112.

2.      Выполните перевод чисел из одной системы счисления в другую:

1.      830,8610 – в двоичную, восьмеричную, шестнадцатеричную системы счисления с точностью до пяти знаков после запятой;

2.      11001110102 – в восьмеричную, десятичную, шестнадцатеричную системы счисления;

3.      615,38 – в двоичную, десятичную системы счисления;

4.      82В16 – в двоичную, восьмеричную, десятичную системы счисления.