Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Метод_итог7.doc
Скачиваний:
19
Добавлен:
17.11.2019
Размер:
16.96 Mб
Скачать

3.1.5. Сложение отрицательных чисел с “особым случаем переполнения”(Случай 5)

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

Пусть для целых чисел, выполняется условие (|A|+|B|)=2n-1 , а для дробных (|A|+|B|)=1.

Очевидно, что в этом случае модуль суммы на единицу младшего разряда больше модуля максимального числа, представимого в заданной разрядной сетке (формулы 2,4). Таким образом, при сложении должно иметь место отрицательное переполнение.

Однако, при особом случае переполнения значение знакового разряда как для целых, так и для дробных чисел совпадает с истинным (единичным ) значением знака суммы. В этом случае знак суммы не является достаточным признаком особого переполнения.

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

Пример 5 Сложение отрицательных чисел с “особым случаем переполнения”(Случай 5)

Выполнить в ПДК сложение соответственно дробных А, В и целых X,Y положительных операндов.

Дробные слагаемые равны

Целые слагаемые раны

A= –0.7510 = – 0.11000002

B= – 0.2510= – 0.01000002

A= –8110= – 10100012

В= –4710= – 01011112

Предварительное решение. При заданных значениях слагаемых, суммы (А+В) и (X+Y) равны, соответственно

(А+В) =–1.0010® –1.00000002 и (X+Y)= –12810 ® –100000002.

Предварительные выводы. Полученные суммы отвечают равенствам (|A|+|B|)=2n-1 и (|X|+|Y|)=1, характерным для особого случая переполнения. Поэтому, при сложении следует ожидать “особый случай” переполнения.

Решение. Так как все операнды отрицательные числа, то они должны быть преобразованы в дополнительные коды.

Дополнительные коды дробных слагаемые равны

Дополнительные коды целых слагаемые равны

[A]доп = 1.01000002;

[B]доп = 1.11000002.

[X]доп = 1 01011112;

[Y]доп = 1 10100012

Сложение в двоичных простых дополнительных кодах имеет вид:

И з примеров следует, что содержание знакового разряда в этом случае не позволяет однозначно определить переполнение, так как совпадает со значениями знаков слагаемых. Однако, модули сумм, как для целых, так и для дробных чисел равны “0”. Поэтому в качестве признака переполнения выступают: а) единица в знаковом разряде; б) нулевое значение модуля суммы.