Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебное_пособие_информатика_v.doc
Скачиваний:
33
Добавлен:
04.11.2018
Размер:
606.21 Кб
Скачать

1.2. Преобразование чисел из одной системы счисления

в другую систему

Пусть N – число в системе с основанием b1, которое требуется представить в системе с основанием b2.

Рассмотрим 2 случая.

1) Метод преобразования состоит в представлении числа (N) b1 в виде многочлена по степеням b1 и вычислении этого многочлена с помощью арифметики по основанию b2.

Пример

Преобразуем число (571.31)8 в число в системе с основанием 10.

210-1-2

(571.31)8 = 5 82+ 7 81+ 1 80+ 3 8-1+ 1 8-2 = (377.390625) 10

Преобразуем число (11001.011)2 в число в системе с основанием 10.

43210 -1-2-3

(11001.011)2 = 1 24+ 1 23+ 0 22+ 0 21+1 20 +0 2-1+ 1 2-2+ 1 2-3=(25.375) 10

Арифметические действия выполняются в системе с основанием 10.

2) В этом случае удобнее воспользоваться арифметикой по основанию b1.

Рассмотрим процедуру преобразования отдельно для целой и дробной частей числа N.

Пусть (N) b1- целое число, значение которого по основанию b2 задается многочленом:

(N) b1= aq-1 b2q-1+ aq-2 b2q-2+ …+ a1 b21+ a0 b20=( aq-1aq-2…a1a 0) b2. (2)

Для нахождения значений ai разделим число (N) b1 на b2:

(N) b1/ b2= aq-1 b2q-2+ aq-2 b2q-3+ …+ a1+ a0/b2. (3)

Q0 -целое

Таким образом, младший разряд (N) b2 , то есть a0, равен первому остатку.

Следующий значащий разряд a1 получается делением частного Q0 на b2:

(Q0/ b2 ) =aq-1 b2q-3+ aq-2 b2q-4+ …+ a1/b2. (4)

Q1 –целое

Остальные ai вычисляются посредством повторного деления остатков до тех пор, пока Qq-1не станет равным 0. Если N - конечное число, то этот процесс должен завершиться.

Правило 1 Для перевода целого числа N по основанию b1 в систему счисления с основанием b2 необходимо последовательно делить исходное число N и образующиеся частные на b2 до получения частного, равного 0. Искомое представление числа N по основанию b2 есть последовательность остатков от операций деления, причем первый остаток дает младшую цифру.

Пример

Преобразовать целое число (501)10 в (?)2

Остаток

Рассмотрим перевод правильных дробей. Пусть (N)b1- дробь, которую необходимо преобразовать в (N)b2. Представим (N)b1 в виде многочлена по основанию b2:

(N)b1= a-1 b2-1+ a-2 b2-2+ a-3b2-3+…+ a-p b2-p (5)

Старшая цифра может быть найдена умножением (5) на b2:

b2 (N)b1= a-1+ a-2 b2-1+ a-3b2-2+…+ a-p b2-p+1 . (6)

дробная часть

Если произведение меньше единицы, то a-1= 0. Если оно больше единицы или равно 0, то a-1 равно целой части произведения. Следующая старшая цифра a-2 определяется путем умножения дробной части указанного выше произведения на b2 и выделения его целой части. Этот процесс может быть бесконечным, так как не всегда можно представить дробь по основанию b2 конечным набором цифр. Процесс в этом случае прекращается по достижении точности.

Правило 2 Для перевода правильной дроби (N)b1 в систему счисления с основанием b2 необходимо последовательно умножать исходную дробь и дробные части получающихся произведений на b2. Искомые цифры искомого представления (N) b2 есть последовательность целых частей произведений, причем первая из них дает старшую цифру a-1.

Пример

Преобразовать правильную дробь (0.567)10 в (?)8

0.567 0.536 0.288 0.304 0.432 0.456

 8  8  8  8  8  8

4.536 4.288 2.304 0.432 3.456 3.648

(0.567)10  (0.442033)8

Преобразовать правильную дробь (0.725)10 в (?)8

0.725 0.800 0.400 0.200 0.600 0.800

 8  8  8  8  8  8

5.800 6.400 3.200 1.600 4.800 6.400

(0.725)10 = (0.(56314))8

Так как легко оперировать только десятичными числами, то обычно преобразование осуществляется через промежуточную систему счисления: десятичную. Условно это можно представить в виде b1  10 b2.

Рассмотрим элементарные приемы взаимного преобразования чисел, основание системы которых кратно степеням 2.

Таблица 2

b = 21

b = 4=22

b = 21

b = 8=23

b = 21

b=16=24

b = 10

00

0

000

0

0000

0

0

01

1

001

1

0001

1

1

10

2

010

2

0010

2

2

11

3

011

3

0011

3

3

01 00

10

100

4

0100

4

4

01 01

11

101

5

0101

5

5

01 10

12

110

6

0110

6

6

01 11

13

111

7

0111

7

7

10 00

20

001 000

10

1000

8

8

10 01

21

001 001

11

1001

9

9

10 10

22

001 010

12

1010

A

10

10 11

23

001 011

13

1011

B

11

11 00

30

001 100

14

1100

C

12

11 01

31

001 101

15

1101

D

13

11 10

32

001 110

16

1110

E

14

11 11

33

001 111

17

1111

F

15

01 00 00

100

010 000

20

0001 0000

10

16

01 00 01

101

010 001

21

0001 0001

11

17

01 00 10

102

010 010

22

0001 0010

12

18

01 00 11

103

010 011

23

0001 0011

13

19

01 01 00

110

010 100

24

0001 0100

14

20

01 01 01

111

010 101

25

0001 0101

15

21

01 01 10

112

010 110

26

0001 0110

16

22

01 01 11

113

010 111

27

0001 0111

17

23

01 10 00

120

011 000

30

0001 1000

18

24

Правило 3 Для перевода двоичного числа в систему счисления с основанием b= 2n необходимо исходное число N влево и вправо от запятой сгруппировать по n битов, а затем каждую группу записать одной цифрой в системе счисления с основанием b.

Пример Запишем двоичное число в восьмеричной и шестнадцатеричной системе.

010 110 111.010 1102= 267.268

0001 0110 0111.0101 10002= 167.58H

Дополнение Для перевода числа из системы с основанием b1=2k в систему с основанием b2 = (b1)n необходимо исходное число N влево и вправо от запятой сгруппировать по n битов, а затем каждую группу записать одной цифрой в системе счисления с основанием b2.

Пример

Запишем четверичное число в шестнадцатеричной системе (см. табл.2).

10 32.31 12 104= 4E.D64H.

Запишем двоичное число в четверичной системе

10 11 01 11.01 01 102= 2313.1124.

Правило 4 Для перевода числа N в системе счисления с основанием b=2n в двоичную систему счисления необходимо каждую цифру исходного числа записать в виде эквивалентного ей n-битного двоичного числа.

Пример

Запишем четверичное число в двоичной системе (см. табл. 2)

1032.311214= 1 00 1 0.11 01 11 012.

Запишем шестнадцатеричное число в двоичной системе

4E.D6H=100 1110.1101 01102.

Дополнение Для перевода числа N в системе счисления с основанием b1=(2k)n в систему счисления b2 = 2k необходимо каждую цифру исходного числа записать в виде эквивалентного ей n-битного числа.

Пример

Запишем шестнадцатеричное число в четверичной системе (см. табл.2).

4E.D64H = 10 32.31 12 104.

Запишем четверичное число в двоичной системе

2313.1124= 10 11 01 11.01 01 102.