Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ПТЦА-1-2004(Комп.логика).doc
Скачиваний:
257
Добавлен:
07.02.2016
Размер:
7.96 Mб
Скачать

8.2 Сложение чисел на сумматоре обратного кода

Двоичным сумматором обратного кода (ДСОК) называется сумматор, оперирующий с числами в обратном коде.

Структурная схема ДСОК приведена на рисунке 8.2.

Рисунок 8.2.-Структурная схема ДСОК

ДСОК имеет: n-сумматоров (по количеству разрядов мантиссы); сумматор знаковых разрядов; ai, bi – цифровые разряды числа в машинном коде; переносы из старших разрядов мантиссы в знаковый разряд; наконец, обратный перенос из старшего знакового разряда в младший разряд цифровой части числа.

Чтобы сформировать правила сложения чисел в обратных кодах на ДСОК рассмотрим следующую теорему.

Теорема: Если результат суммы обратных кодов чисел отрицательный, то результат представлен в обратном коде. Если результат суммы дополнительных кодов чисел положительный, то результат представлен в прямом коде.

При доказательстве этой теоремы предполагаем, что числа представлены в форме с фиксированной запятой, стоящей перед старшим цифровым разрядом.

Рассмотрим следующие случаи.

Случай 1. А>0, В>0, А+В<1 т.е. оба числа положительные. Тогда Аобр. + Вобр = [A + B]обр = А + В, т.е. сложение производится

в прямых кодах.

Случай 2. A<0, B>0, |A|>B,

здесь Аобр = q - q-n + A, Вобр = В, тогда Аобр + Вобр = q - q-n + A + B = [A + B]обр, т.е. результат отрицательный и в обратном коде, надо возвращаться к Спр путем инверсии разрядов числа.

Пример:

А = – 0.1011 – 11 В = 0.0111 +7 Сумматор ДСОК.

Случай 3. A<0, B>0, A<B, здесь Аобр = q - q-n + A. Тогда Аобр + Вобр = q - q-n + A + B. Так как сумма (А + В) положительная, то правая часть этого выражения становится больше q, что вызывает появление единицы переноса из знакового разряда в младший разряд числа (величина переноса при этом, равна q - q-n), тогда Аобр + Вобр = А+В. Результат положительный. Это и есть Спр.

Пример:

А = -0.0101 (-5) В = 0,0111 (+7) Сумматор ДОСК

Случай 4. А<0, В<О, |А + В|<1,

здесь Ao6p = q - q-n + A, Вобр= q - q-n + B. Тогда Аобр + Вобр = q - q-n+A+ q - q-n +B. Здесь появляется единица переноса, что равносильно изъятию из суммы q - q-n, т.е. Аобр+ Вобр= q - q-n + A + B=[A + B]o6p.

Пример:

А = -0,0101 ; В = -0,1000 Найти сумму используя ДСОК.

Складываем машинные изображения.

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

9.1 Переполнение разрядной сетки

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

9.1.1 Переполнение при сложении прямых кодов

Признаком переполнения разрядной сетки сумматора прямого кода является появление единицы переноса из старшего разряда цифровой части числа.

Пример.

А=0,1010; В=0,1101.

Получен искаженный результат, из-за потери переноса.

9.1.2 Переполнение при сложении дополнительных кодов

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

Пример: А=0,1011, В=0,1010

9.1.3 Переполнение при сложении в обратных кодах

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

Пример:

1).

А=0,0111, В=0,1101

Знак числа искажен.

Для устранения потерь от переноса единицы переполнения, в составе цифрового автомата должны быть предусмотрены дополнительные средства, позволяющие фиксировать и анализировать переполнения по их признакам с целью устранения искажения результата.

Чтобы фиксировать переполнения разрядной сетки в ДСПК, ДСОК, ДСДК, вводится вспомогательный разряд в знаковую часть изображения числа, который называют разрядом переполнения числа. Такое представление числа называется модифицированным (см. рисунок 8.1)

В машинном представлении чисел, представленных в модифицированном коде, используется (n+2) разряда: из них 2 знаковых, запятая опускается, устанавливается постоянный коэффициент формата Кф.

Пример: 1) А=0,1011,В=0,1010.

Здесь признаком переполнения является 1 в знаковом разряде. По этому признаку производится сдвиг числа вправо с одновременным увеличением коэффициента формата Кф на +1 и восстановлением (по значению Sg1) знака 00 числа, проверяется нормализация числа (наличие 1 после знака числа).

2) А=-0,1011, В=-0,1001. Преобразуем в машинную форму: Ампр.=11.1011, Вмпр.=11.1001. Так как оба числа отрицательны и операция сложения выполняется на сумматоре дополнительного кода, то в сумматор числа поступают в дополнительном коде.

Анализ разрядов знака результата (10) показал, необходимость восстановления его (11), сдвигая число вправо на один разряд, с одновременным увеличением коэффициента формата Кф на +1. Результат отрицательный, и поэтому, представлен в дополнительном коде. Поэтому, число преобразуется в прямой код через обратный с добавлением в младший разряд +1.