Модифіковані зворотний та додатковий коди

При переповненні розрядної сітки відбувається перенесення одиниці в знаковий розряд. Це призводить до неправильного результату, причому позитивне число, що вийшло в результаті арифметичної операції, може сприйматися як негативне (бо в знаковому розряді "1") і навпаки.

Тут X і Y – коди позитивних чисел, але ЕОМ приймає результат їхнього додавання як код негативного числа (“1” у знаковому розряді). Для виявлення переповнення розрядної сітки вводяться модифіковані коди.

Модифікований зворотний код - у ньому під знак числа відводиться не один, а два розряди. Форма запису чисел у модифікованому зворотному коді виглядає так:

1) для позитивного числа

X=

коди
; X
модифіковані
=
додатковий
;

2) для негативного числа

X=

модифіковані
; X
додатковий
=
зворотний
;

(позначення

модифіковані
читається "не X", тобто. , Якщо X = 0, то
додатковий
=1 і навпаки, якщо X=1, то
коди
=0).

Умодифікованому зворотному тамодифікованому додатковому коди під знак числа відводиться не один, а два розряди: "00" відповідає знаку "+", "11" - знаку "-". Будь-яка інша комбінація ("01" або "10"), що вийшла в знакових розрядах служитьознакою переповнення розрядної сітки. Додавання чисел у модифікованих кодах нічим не відрізняється від додавання у звичайних зворотному та додатковому кодах.

Розглянемо попередній приклад, виконавши додавання у модифікованому зворотному коді:

У ЕОМ у процесі роботи обидва знакові розряди порівнюються. У разі появи ознаки переповнення машина зупиняється.

Модифікований додатковий код також розглядає два знакових розряду, а у всьому іншому нічим не відрізняється від звичайного додаткового коду, тобто:

1) для позитивного числа

X=

числа
; X
зворотний
=
модифіковані
;

2) для негативного числа

X=

числа
; X
числа
=
коди
+0,000. . . 1;

приклад. Дано два числа: X = 101001 і Y = -11010. Скласти їх у додатковому та модифікованому додатковому кодах.

1) Перекладемо X та Y у додатковий та модифікований додатковий код: