Признак переполнения разрядной сетки
При алгебраическом суммировании двух чисел, помещающихся в разрядную сетку, может возникнуть переполнение, т.е. образуется сумма, требующая для своего представления на один двоичный разряд больше, чем разрядная сетка слагаемых. Предполагается, что положительные числа представляются в прямом коде, а отрицательные - в дополнительном.
Признаком переполнения является наличие переноса в знаковый разряд суммы при отсутствии переноса из знакового разряда (положительное переполнение) или наличие переноса из знакового разряда суммы при отсутствии переноса в знаковый разряд (отрицательное переполнение).
При положительном переполнении результат операции положительный, а при отрицательном переполнении – отрицательный.
Если и в знаковый, и из знакового разряда суммы есть переносы или этих переносов нет, то переполнение отсутствует.
Рассмотрим простейшие примеры с трехбитовыми словами. Диапазон чисел, которые они представляют, равен от -4 до +3. В рассматриваемых словах 1 бит знака и 2 информационных бита.
1. Алгебраическое суммирование без переноса.
Поскольку перенос в знаковый разряд или из знакового разряда суммы отсутствует, то переполнения нет.
Результат – положительное число в ПК, равное 3.
2. Алгебраическое суммирование с двумя переносами.
Имеются переносы в знаковый разряд и из знакового разряда вычисляемой суммы, поэтому переполнения нет.
Результат – отрицательное число в ДК, равное -4.
3. Алгебраическое суммирование с одним переносом.
(Положительное переполнение).
При суммировании есть перенос в знаковый разряд суммы, а перенос из знакового разряда отсутствует, т.е. имеет место положительное переполнение, и результат операции положительный.
Число 4 нельзя представить в прямом коде. Формальный результат равен -4.
4. Алгебраическое суммирование с одним переносом.
(Отрицательное переполнение).
Число -5 нельзя представить 3-битовой комбинацией. Формальный результат равен +3.
Из рассмотренных ранее примеров видно, что арифметические операции в дополнительном коде выполняются достаточно просто. Необходимо только не упускать из виду то, с какими числами происходит работа в данный момент – без знака или со знаком. Поскольку внешний вид обоих чисел одинаков, возможны ошибки.