Модифицированные коды

В отличие от обычных машинных кодов в модифицированных кодах под знак числа отводится два разряда: плюс изображается двумя нулями, а минус – двумя единицами. Это весьма удобно для выявления переполнения разрядной сетки, которое может получиться при сложении чисел с одинаковыми знаками.

Пример 1. Числа А 2 = + 0.10101 и А 2 = – 0.10101представить в обратном и дополнительном

N M1пр = 00.10101, N M1обр = 00.10101;, N M1доп = 00.10101;

N M2пр = 11.10101, N M2обр = 11.01010;, N M2доп = 11.01011;

Сложение чисел в модифицированном обратном коде. Сложение осуществляется по правилам двоичной арифметики. Отличие состоит лишь в том, что единицу переноса из старшего знакового разряда (если она появляется) необходимо прибавить к младшему разряду суммы, т.е. образуется циклический перенос.

Пример 2. Сложить в модифицированном обратном коде двоичные числа А и В при условии: А >0, В > 0, А + В > 0.

Знак 01 говорит о том, что получен положительный результат, а перенос из старшего разряда в знаковый указывает на то, что произошло переполнение разрядной сетки. Следовательно, истинный результат получен в прямом коде и равен:

Пример 3. Сложить в модифицированном обратном коде двоичные числа А и В при условии: А < 0, В < 0, А + В < 0. Переведем А и В в обратные модифицированные коды и произведем их сложение. Если в знаковом разр

 
 

яде результата возникнет переполнение, то единицу переноса прибавим к младшему разряду суммы.

Сочетание 10 в знаковых разрядах указывает на то, что результат получен отрицательный (старшая единица), а ноль указывает на то, что произошло переполнение разрядной сетки. Для получения прямого кода проинвертируем значение биты результата и получим:

Апр + В пр= 1.11000 = – 2410

Пример 4. Сложить в модифицированном обратном коде

Сложение чисел в модифицированном дополнительном коде осуществляется по правилам двоичной арифметики. Единица переноса, возникающая в старшем знаковом разряде суммы, отбрасывается. Знаковым разрядом числа является второй слева от запятой разряд; первый разряд служит для анализа переполнения разрядной сетки.

Пример. Сложить в модифицированном дополнительном коде двоичные числа А и В при условии, что оба числа положительные:

Сложить в модифицированном дополнительном коде двоичные числа А и В при условии, что одно слагаемое положительное число А > 0, второе слагаемое число отрицательное:

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

Результат показывает, что сумма – число отрицательное, а разрядная сетка переполнена (1 0). Переведем дополнительный код в прямой и получим

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


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  




Подборка статей по вашей теме: