В отличие от обычных машинных кодов в модифицированных кодах под знак числа отводится два разряда: плюс изображается двумя нулями, а минус – двумя единицами. Это весьма удобно для выявления переполнения разрядной сетки, которое может получиться при сложении чисел с одинаковыми знаками.
Пример 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). Переведем дополнительный код в прямой и получим
|
|
Признаками переполнения разрядной сетки являются либо наличие переноса в знаковый разряд при отсутствии переноса из знакового разряда, либо наличие переноса из знакового разряда суммы при отсутствии переноса в этом разряде. Если нет переносов из знакового разряда и в знаковый разряд суммы или есть оба эти переноса, то переполнения разрядной сетки нет.