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

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

Пример 1. Найти сумму (A1+A2 ) доп = A1 доп+ A2 доп.

А1 доп = 1 01001 (целое десятичное число «-23»).

А2 доп = 1 01110 (целое десятичное число «-18»).

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

+ 1 01001

1 01110

0 10111

Единица переноса из знакового разряда игнорируется. Результат машиной ошибочно воспринимается как положительное число.

Способы выявления переполнения в арифметических операциях:

1) Анализируются два переноса – из старшего значащего разряда в знаковый (p1) и из знакового разряда (p2).

Если есть оба переноса или нет ни одного переноса, то переполнения нет, если есть только один из переносов, то имеет место переполнение.

Сигнал j («Останов») будет вырабатываться по формуле:

2) Для представления чисел применяют модифицированный код. На переполнение при сложении двух чисел указывают несовпадение цифр в знаковых разрядах результата. Комбинация 01 соответствует переполнению положительного результата, а комбинация 10 – отрицательного.

Пример 2. Найти сумму двух чисел с фиксированной запятой, представленных в дополнительном коде:  

А1 доп = 1 01001 (целое десятичное число «–23»);

А2 доп = 1 01110 (целое десятичное число «–18»).

Для приведенного примера суммируем числа в доп. модиф. коде:

+ 11 01001

11 01110

10 10111.

Комбинация «10» в знаковых разрядах результата является признаком отрицательного переполнения результата.

Пример 3. Найти сумму двух чисел с фиксированной запятой, представленных в дополнительном коде:  

А1 доп = 0 01001 ( +23);

А2 доп = 0 01110 (+18).

Для приведенного примера суммируем числа в пр. модиф. коде:

+ 00 10111

00 10010

01 01001.

Комбинация «01» в знаковых разрядах указывает на переполнение положительного результата суммирования.

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

ЭВМ вырабатывает сигнал φ = 1 (Останов).

Если сигнал φ = 0, то переполнения нет, результат верный и можно продолжить решение задачи.

Если обозначить знаковые разряды: младший разряд – зн 1, старший разряд – зн 2, то значение сигнала φ будет вырабатываться по формуле:

Сложение и вычитание чисел с фиксированной и плавающей запятой. Примеры.

Алгоритм сложения:

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

2.Суммируются полученные коды чисел, включая знаковые разряды. Если имеет место перенос из знакового разряда, он отбрасывается.

3.Анализируется результат (сумма) на переполнение. Если имеет место переполнение, то вырабатывается сигнал φ = 1 и ЭВМ останавливает решение задачи.

4.Если переполнения нет, то анализируется результат по знаковому разряду: 0 – результат в прямом коде, 1 – результат в дополнительном коде.

Пример 4. Заданы числа. Выполнить операцию сложения (А1+ А2). 

[A1]пр = 1 0110,     [A1]доп = 1 1010.

[A2]пр = 1 1001,     [A2]доп = 1 0111.

Суммируем [А1]доп + [А2]доп:                     

 + 1 1010доп

1 0111доп

1 0001доп.

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

Результат: [Aрез]доп = 1 0001;       [Aрез]пр = 1 1111.

Проверка: (–6) + (–9) = (–15).

Операция вычитания чисел (целых или дробных) заменяется суммой:

[A1]пр – [A2]пр = [A1]пр + [–A2]пр.

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

Дата: 2019-02-02, просмотров: 478.