Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

шпорки) , 1ый семестр (Луцик Ю) / 4 Переполнение разрядной сетки

.txt
Скачиваний:
27
Добавлен:
15.06.2014
Размер:
1.92 Кб
Скачать
4 Переполнение разрядной сетки
При выполнении нек-ых арифметических операций может возникать явление переполнения разрядной сетки. Причиной переполнения может служить суммирование двух чисел с одинаковыми знаками (для чисел с разными знаками переполнение не возникает), которые в сумме дают величину, большую или равную 1 (при сложении правильных дробей), или величину rn (при сложении целых чисел). В результате сложения двух положительных чисел получено отрицательное число, что является ошибкой. Результат неверен также и по величине. Для обнаружения переполнения используются следующие признаки:
- знаки слагаемых не совпадают со знаком суммы;
- есть перенос только в знаковый или только из знакового разряда. Функция переполн: f=П1П2 + П1П2 = П1 П2.
Если при сложении чисел с фиксированной запятой возникло переполнение, то вырабатывается сигнал переполнения разрядной сетки и вычисления прекращаются.
Следует отметить, что при сложении чисел в дополнительном коде возможен случай, когда переполнение не фиксируется. Это происходит тогда, когда сумма модулей двух отрицательных чисел равна удвоенному весу единицы старшего разряда числа.
Модифицированные коды
Для обнаружения переполнения разрядной сетки можно использовать модифицированные коды. Модифицированные коды отличаются от обычных кодов тем, что знак числа кодируется двумя разрядами. При выполнении алгебраического сложения или вычитания два знаковых разряда участвуют в операции как равноправные цифровые разряды. После выполнения операции содержимое знаковых разрядов определяет знак результата (левый знаковый разряд) и наличие переполнения (несовпадение знаковых разрядов): комбинация 01 фиксирует переполнение при сложении положительных чисел (положительное переполнение), а 10 - отрицательных (отрицательное переполнение).
Функция переполнения имеет вид: f=Зн1 Зн2 + Зн1 Зн2 = Зн1 Зн2.