Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

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



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

Например: X = 0,1011110 Y = 0,1101100 X+Y = 1,1001010

X и Y – коды положительных чисел, но в процессе сложения в знаковом разряде появилась "1", что означает код отрицательного числа. Чтобы распознать переполнение разрядной сетки вводятся модифицированные коды.

Модифицированный обратный код характеризуется тем, что под знак числа отводится не один, а два разряда. Форма записи чисел в модифицированном обратном коде выглядит следующим образом:

· для положительного числа X= Þ X = ;

· для отрицательного числа X= Þ X = ;

( - обозначение логической операции отрицания "не X", если X=0, то =1; X=1, =0).

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

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

Обычная запись Обратный код Модифициро-ванный обратный код Дополнитель-ный код Модифициро-ванный дополнительный код
X=+0101011 Y=–0011110 Xобр=0,0101011 Yобр=1,1100001 Х =00,101011 Y =11,100001 Xдоп=0,0101011 Yдоп=1,1100010 X =00,101011 Y =11,100010

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

Дополнительный код Модифицированный дополнительный код
Xдоп= 0,0101011 Yдоп= 1,1100010
единица переноса отбрасывается
1 0,0001101

(X+Y)доп= 0,0001101

X = 00,0101011 Y = 11,1100010
единица переноса отбрасывается
1 00,0001101

(X+Y) = 00,001101

Переполнение не наблюдается (в знаковых разрядах “00”). Результаты, полученные в обычном и модифицированном кодах, совпадают (X+Y=1101).





Дата публикования: 2015-09-18; Прочитано: 4559 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.006 с)...