Модифицированные обратный и дополнительный коды.

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

Например:

Здесь X и Y - коды положительных чисел, но ЭВМ воспринимает результат их сложения как код отрицательного числа ("1" в знаковом разряде). Для обнаружения переполнения разрядной сетки вводятся модифицированные коды.

В модифицированном обратном и модифицированном дополнительном кодах под знак числа отводится не один, а два разряда: "00" соответствует знаку "+", "11" - знаку "-". Любая другая комбинация ("01" или "10"), получившаяся в знаковых разрядах служит признаком переполнения разрядной сетки. Сложение чисел в модифицированных кодах ничем не отличается от сложения в обычных обратном и дополнительном кодах.

Рассмотрим предыдущий пример, выполнив сложение в модифицированном обратном коде:

Комбинация "01" в знаковых разрядах означает, что произошло переполнение и получившийся результат - неверный.

Рассмотрим ещё один пример.

Пример. Даны два числа: X=101001 и Y= -11010. Сложить их в модифицированном дополнительном коде.

1) Переведем X и Y в модифицированный дополнительный код:

 

  Обычная запись Модифицированный обратный код Модифицированный дополнительный код
X= +101001 Y= -011010

 

2) Выполним сложение:

Переполнения нет (в знаковых разрядах "00"), поэтому полученный результат - верный (X+Y=1111)









Дата добавления: 2015-08-01; просмотров: 6289;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.007 сек.