Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
1_lesson.docx
Скачиваний:
3
Добавлен:
06.05.2019
Размер:
707.2 Кб
Скачать

9.5.2. Преобразование дробной части числа

Если число H<1, то его код в системе счисления q равен Hq = 0,h-1h-2…hm-1hm, а развёрнутая форма записи кода числа:

H = h-1*q-1+ h-2*q-2+… +hm-1*q-(m-1)+ hm*q-m

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

(h-1*q-1+ h-2*q-2+… +hm-1*q-(m-1)+ hm*q-m)*q = h-1+ (h-2*q-1+… +hm-1*q-(m-2)+ hm*q–(m-1)

В таблице на Рис. 9.5.2.1, по аналогии с таблицей на Рис. 9.5.1.1., представлены краткие названия методов преобразования дробной части числа из одной системы счисления в другую. Человеку это правило удобно применять только при преобразовании 10→2, 10→8, 10→16. При обратном преобразовании 2→10, 8→10, 16→10 необходимо использовать представление числа в виде степенного ряда (полинома) в первичной системе счисления и проводить все вычисления в 10-ичной системе счисления.

Преобразования 2→8, 2→16 и для целой части, и для дробной части выполняются одним способом. Различие в преобразовании целой части от преобразования дробной части состоит в том, что при преобразовании целой части цифры группируются в триады или тетрады, начиная со знака «,» (разделитель целой и дробной частей) в направлении «справа-налево», а при преобразовании дробной части – в направлении «слева-направо».

Преобразования 8→2, 16→2 и для целой части, и для дробной части выполняются одним способом – записью каждой цифры первичного кода в двоичной системе счисления.

В остальных случаях преобразование необходимо проводить в 2 этапа. На первом этапе преобразовать код числа из первичной системы в 10-ичную, а на втором этапе – из 10-ичной системы во вторичную.

Основание

10

2

8

16

10

×

↑ (умн)

↑ (умн)

↑ (умн)

2

↑ (ст)

×

↑ (гр)

↑ (гр)

8

↑ (ст)

↑ (цифр)

×

↑ (комб)

16

↑ (ст)

↑ (цифр)

↑ (комб)

×

Рис. 9.5.2.1.

Пример 16. Преобразовать код числа 0,12510 из 10-ичной системы в 2-ичную (Рис. 9.5.2.2.).

Разряд

Цифра кода (целая часть результата умножения)

Код и дробная часть результата умножения

0,

125

2

a-1

0,

250

2

a-2

0,

5

2

a-3

1,

0

Рис. 9.5.2.2.

Результат: 0,12510 = 0,0012

Проведём проверку путём обратного преобразования.

0,0012 = 0*2-1+0*2-2+1*2-3 = 1 ⁄ 8 = 0,12510

Пример 17. Преобразовать код числа 0,12510 из 10-ичной системы в 8-ичную (Рис. 9.5.2.3.).

Разряд

Цифра кода (целая часть результата умножения)

Код и дробная часть результата умножения

0,

125

8

a-1

1,

000

Рис. 9.5.2.3.

Результат: 0,12510 = 0, 18

Проведём проверку путём обратного преобразования.

0,18 = 1*8-1 =1 ⁄ 8 =0,12510

Пример 18. Преобразовать код числа 0,12510 из 10-ичной системы в 16-ичную (Рис. 9.5.2.4.).

Разряд

Цифра кода (целая часть результата умножения)

Код и дробная часть результата умножения

0,

125

16

a-1

2,

000

Рис. 9.5.2.4.

Результат: 0,12510 = 0,216

Проведём проверку путём обратного преобразования.

0,216 = 2*16-1 = 2 ⁄ 16 = 1 ⁄ 8 =0,12510

Отметим, что после нескольких шагов дробная часть равна 0. Такое событие является признаком окончания операций «умножение». Такие случаи возможны только при условии, что дробное число делится на основание вторичной системы нацело. В противном случае можно получать результат с необходимой точностью, т.е. закончить преобразование после получения нескольких цифр во вторичной системе счисления.

Пример 19. Преобразовать код числа 0,3710 из 10-ичной системы в 2-ичную (Рис. 9.5.2.5.).

Разряд

Цифра кода (целая часть результата умножения)

Код и дробная часть результата умножения

0,

37

2

a-1

0,

74

2

a-2

1,

48

2

a-3

0,

96

2

a-4

1,

92

Рис. 9.5.2.5.

Результат: 0,3710 = 0,01012

Проведём проверку путём обратного преобразования.

0,01012 = 0*2-1+1*2-2+0*2-3+1*2-4 = 1 ⁄ 4+1 ⁄ 16 = 5 ⁄ 16 = 0,3113~0,31

В данном случае результат является приближённым, полученным с определённой точностью. Если продолжать преобразование дальше, то можно получить более близкий к первичному числу результат: 0,0101111012=0,359375~0,36

Пример 20. Преобразовать код числа 11101,11000112 из 2-ичной системы в 8-ичную и обратно.

11101,11000112 = 011 101,110 001 1002 = 35,6148

35,6148 = 011 101,110 001 1002 = 11101,11000112

Пример 21. Преобразовать код числа 11101,11000112 из 2-ичной системы в 16-ичную и обратно.

11101,11000112 = 0001 1101,1100 01102 = 1D,C616

1D,C616 = 0001 1101,1100 01102 = 11101,11000112

52