logo
учебное пособие по А и ЛО ВТ

Переполнение разрядной сетки

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

Пример: A=+0,101 [A]доп = 0.101

B=+0,110 [B]доп = 0.110

[A+B]доп = 1.011

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

Для обнаружения переполнения можно использовать следующие признаки:

- знаки слагаемых не совпадают со знаком суммы;

- есть перенос только в знаковый или только из знакового разряда.

Функция переполнения имеет вид: f=П1П2 + П1П2 = П1  П2

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

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

Пример: A=- 0,101 [A]доп = 1.011

B=- 0,011 [B]доп = 1.101

[A]доп+[B]доп = 1,000

Yandex.RTB R-A-252273-3
Yandex.RTB R-A-252273-4