Двоичным сумматором обратного кода (ДСОК) называется сумматор, оперирующий с числами в обратном коде.
Структурная схема ДСОК приведена на рисунке 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 Найти сумму используя ДСОК.
Складываем машинные изображения.