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

7.3 Сложение чисел, представленных в форме с фиксированной запятой, на двоичном сумматоре прямого кода

Двоичным сумматором прямого кода (ДСПК) называется сумматор, в котором отсутствует цепь поразрядного переноса между старшим цифровым и знаковым разрядами (рисунок7.3).На сумматорах прямого кода можно складывать только числа, имеющие одинаковые знаки, а результат сложения < 1 , т.е. такой сумматор не выполняет операцию алгебраического сложения, переполнение старшего n-разряда служит лишь для индикации факта, что оно было, перекладывая дальнейшие заботы на пользователя, а знак определяется по знаку любого операнда, например SqA.

Пусть заданы операнды:

Где SqA, SqB содержание знаковых разрядов. Если SqA = SqВ, то сумма чисел будет иметь знак любого из слагаемых, а цифровая часть получится поразрядным сложением операндов.

Пример. Сложить А=0,1011; В = 0,0100 .Здесь SqA = 0 ; SqB = 0

Сложить A = –0,0101; B = –0,1001. Здесь SqA = 1 ; SqB = 1

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

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

8 Алгебраическое сложение бинарных чисел

8.1Cложение чисел на двоичном сумматоре дополнительного кода

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

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

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

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

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

1. A>0, B>0, а A + B<1 числа положительные и нет переполнения. Для этого случая Aдоп = А, Вдоп = В , то Адоп + Вдоп = А + В = [A + B]доп – результат положительный. Покажем это на примере: А = 0,1010; В = 0,0100

Спр.=0.1110

  1. A<0, B>0, а |A|B. Для этого случая Адоп = q + |-A|, Вдоп = В тогда Адопдоп = =q + |A| + B = [A + B]доп – результат отрицательный.

А = – 0,1011; В = 0,0100

Результат получен отрицательный, это значит, что он представлен в дополнительном коде, и его необходимо перевести в прямой, чтобы получить истинный результат. Перевод числа из дополнительного кода в прямой осуществляем по следующему алгоритму: -все разряды числа (кроме знаковых) инвертируем (т. е. берется обратный код результата) и в младший разряд добавляется +1. Знак сохраняется.

3 A<0, B>0, а |A|<B. для этого случая Адоп = q + |A|, Вдоп = В тогда Адоп + + Вдоп = q + |A| + B. Так как значение этой суммы больше q, то появляется единица переноса в знаковый разряд, что равносильно изъятию из суммы q единиц, т.е. результат равен:

Адоп + Вдоп = А + В=Спр.

Пример. А = -0,0100; В = 0,1011.

  1. A<0, B<0, а |A + B|<1. для этого случая Адоп = q +(-А) Вдоп = q +(-В), тогда Адоп + Вдоп = q +(-A) + q +(-B) = [A + B]доп – результат отрицательный и появится единица переноса из знакового разряда. Пример. . А = – 0,0100; В = – 0,1011.

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