Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
АЭВМ_лаб_4.doc
Скачиваний:
14
Добавлен:
01.12.2018
Размер:
487.42 Кб
Скачать

§ 5.3. Особенности умножения чисел, представленных в форме с плавающей запятой

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

Рис. 5.3. Структурная схема множительного устройства с плавающей запятой

Очевидно, что результат умножения может получиться ненормализованным, тогда потребуется нормализация с соответствующей коррекцией порядка результата. Следовательно, структурная схема множительного устройства должна измениться (рис. 5.3).

Рассмотрим пример выполнения операций умножения чисел, заданных в прямом коде.

Пример 5.2. Перемножить числа А = — 0,11001*2- 3 и В = 0,10011*2+1

В качестве множительного устройства используется схема, показанная на рис. 5.3, где РгА и РгВ соответственно регистры для порядков рA и рв.

Р е ш е н и е. Мантиссы перемножаются по правилам, рассмотренным для чисел, представленных в форме с фиксированной запятой. Для перемножения мантисс используется сумматор прямого кода, а для сложения порядков — сумматор обратного кода.

Сначала записываются машинные изображения чисел:

[mA]пр== 1,11001; [pA]об= 1,100;

[mB]пр== 0,10011; [pB]об -0,001.

Последовательность действий в процессе выполнения операции умножения мантисс представим в табл. 5.2.

После выполнения указанных действий находится мантисса произведения [mC]пр= 1,0111011011.

Одновременно с этим над порядками производится операция сложения:

[pC]об = [pA]об + [pB]об = 1,100 + 0,001 = 1,101.

Так как мантисса результата не удовлетворяет условию нормализации (нарушена левая граница: =1, =0), то производится сдвиг мантиссы влево на один разряд: [m`C]пр = 1,1110110110, и коррекция порядка [p`C]o6 = [pC]об+ 1,110 = 1,101 + 1,110=1,110.

Таблица 5.2

Знак результата

Сумматор

Регистр В

Примечание

00000

10011

+11001

11001

011001

01001

+11001

1001011

1001011

00100

01001011

00010

001001011

00001

+11001

111011011

0111011011

00000

Конец

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

Ответ: С= — 0,11110* 2-3.

При выполнении операции умножения может иметь место ряд особых случаев. Например:

если один из сомножителей равен нулю, то произведение также равно нулю. Следовательно, необходимо предусмотреть блокировку выполнения алгоритма умножения и формировать результат, равный нулю;

если порядок результата равен наибольшей отрицательной величине, то необходимо формировать машинный нуль.

Эти особые случаи можно предусмотреть в алгоритме операции введением анализатора сомножителей на нуль в начале операции (первый случай) или коррекцией произведения на основании приз­наков результата (второй и третий случаи).