Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ответы by Рузилька.doc
Скачиваний:
20
Добавлен:
04.09.2019
Размер:
690.18 Кб
Скачать

10. Алгебраическое сложение десятичных чисел, представленных в коде 8-4-2-1.

11. Алгебраическое сложение чисел в форме с плавающей точкой.

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

Mx•dk + My•dp = (Mx•dk-p + My)dp = (Mx,выр. + My)dp = Mz•dp

Где Mх и Му – соответственно мантиссы слагаемых чисел Х,У; Мz – мантисса числа Z, полученного в результате сложения; d – основание используемой системы счисления; k и p – соответственно значение меньшего и большего порядков слагаемых чисел; Мх,выр – выровненная мантисса слагаемого, имеющего меньший порядок.

Согласно указанному выражению операцию алгебраического сложения чисел с плавающей точкой проводят в несколько этапов:

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

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

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

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

Пусть складываются числа

Х= +0,10100•(10)+101

У= -0,1011•(10)+100

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

- 1012 → (1011)доп

+ 1002+(0100)доп

(1111)доп → (1001)пр → -0012 = -110

Исходя из полученного результата, сдвинем мантиссу числа Х на один разряд вправо.

МУвыр= - 0,010112

Проведем операцию сложения выровненных мантисс в дополнительных кодах.

МХ= +0,101002 → (010100)доп

МУвыр= -0,010112+(110101)доп ↓ нарушение нормализации

Отбр ← 1(001001)доп → (001001)пр → +0,010012

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

+0,101002•10 +101 + (-0,10110)2•10100 = +0,100102•10100

В следующем примере рассмотрим случай когда при сложении нарушается нормализация слева от запятой (переполнение разрядной сетки).

Допустим необходимо сложить числа

Х= +0,10100•(10)2+011

У= +0,11100•(10)2+101

Определим разность порядков слагаемых при изменении знака большего порядка.

-1012 → (1011)доп

+0112+(0011)доп

(1110)доп

(1110)доп → (1010)пр → -0102= -210

На основании полученного результата сдвинем мантиссу числа Х на два разряда вправо.

МХвыр= +0,001012

Проведем операцию сложения выровненных мантисс.

МХвыр= +0,001012 → (000101)доп

МУвыр= +0,111002+(011100)доп

(100001)доп

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

+0,10100•(10)2+011 + 0,11100•(10)2+101 = +0,10000•(10)2+110