Какие случаи возможны при сложении целых чисел Как мы поступаем в каждом из них

0 голосов
54 просмотров

Какие случаи возможны при сложении целых чисел Как мы поступаем в каждом из них


Математика (370 баллов) | 54 просмотров
Дан 1 ответ
0 голосов

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

Mxdq+Mydp=(Mxd(q-p)+My)dp=(Mx выр+My)dp=Mzdp,

где: 
Mx и My – соответственно мантиссы слагаемых чисел X и Y;
d – основание, используемой системы счисления;
q и p – соответственно значения меньшего и большего порядков слагаемых чисел;
Mx выр – выровненная мантисса слагаемого, имеющего меньший порядок.

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

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

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

X= +0,10100*(10)+101 и Y= -0,10110*(10)+100.

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



Исходя из полученного результата сдвинем мантиссу числа Y на один разряд вправо:My выр= -0,010112. Операцию сложения выровненных мантисс чисел проведем в модифицированных дополнительных кодах:



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


+0,10100*(10)+101+(-0,10110)*(10)+100=+0,10010*(10)100.


В следующем примере рассмотрен случай когда при сложении нарушается нормализация слева от запятой (переполнение разрядной сетки). Допустим, что необходимо сложить числа: x=+0,10100*(10)+001и y=+0,11100*(10)+101. Определим разрядность слагаемых чисел при изменении знака большего порядка



На основании полученного результата сдвигается мантисса числа x на два разряда вправо:Мx выр= +0,001012. Далее проводится операция сложения выровненных мантисс:



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

+0,10100*(10)+011+0,11100*(10)+101=+0,100001*(10)+110.

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

Если числа в форме с плавающей запятой имеют основание системы счисления d=16, то при выравнивании порядков и нормализации мантисс сдвиг производится на количество двоичных разрядов равное или кратное четырем, поско


(155 баллов)