Сумматоры — страница 6

  • Просмотров 9001
  • Скачиваний 573
  • Размер файла 330
    Кб

сформировать из полученного в примере 9.6, если единицу переноса из знакового разряда добавить к младшему разряду результата. Это правило является общим при использовании обратных кодов чисел, когда результат сложения [А + В]обр > 0 (в знаковом разряде 0). Заметим следующую особенность. Если А > В (А – В > 0), то в процессе определения [А + В]обр имеет место перенос в знаковый разряд. Это объясняется тем, что сумма цифровых разрядов

В+[В]обр=111...1, откуда [В]обр=111…1 – В, [А+В]обр=А+(111…1 – В ), т. е. при А>В действительно происходит переполнение разрядной сетки, в которую вписаны цифровые разряды. Аналогичный перенос происходит и при вычислении [А+В]доп, если А >В. ,   Пример 9.7. Определить разность А–В, если А = 910 = 10012, В = 1410= 11102: Правильный результат (–5 = –01012) получается из полученного инверсией его цифровых разрядов, т. е. при использовании

обратных кодов чисел результат, если он отрицателен, выражен в обратном коде,. Представление вычитаемого обратным кодом будет показано в схеме (рис.9.6).   Пример 9.8. Определить разность А- В , если А = –310= –0112, В = –410= -1002: Как уже отмечалось, при [А+В]обр>0 для получения разности А – В надо к младшему цифровому разряду промежуточного результата прибавить единицу переноса из знакового разряда: А–В = 000+001 = 0012 =110. С

использованием дополнительных кодов А и В находим Так как результат получился положительным, то его истинная величина выражается цифровыми разрядами полученной суммы: А – В = =0012=110. Приведем еще два примера, представляя числа в дополнительных кодах.   Пример 9.9. Определить сумму A+В, если A = –310 = –0112, В = –410 = –1002: Заметим, что в процессе вычислений имел место перенос в знаковый разряд. Полученная сумма А+В<0, для

определения ее абсолютной величины надо найти дополнительный код числа в ее цифровых разрядах: А + В = 110 + 001 = 1112 = 710.   Пример 9.10. Определить сумму А+В, если A= –710= –1112, В= –5= =–1012: Нетрудно заметить, что получен неверный результат: сумма отрицательных чисел оказалась положительной (в знаковом разряде 0). Это объясняется тем, что результат не вместился в разрядную сетку, в которую вписаны слагаемые. Действительно, по

условию примера модуль |А+В| = 1210 = 11002 представляется четырьмя двоичными разрядами, а для слагаемых зарезервировано три разряда. Признаком такого переполнения разрядной сетки для отрицательных чисел является отсутствие переноса в знаковый разряд и наличие переноса из него. Признаком переполнения разрядной сетки для положительных чисел является наличие переноса в знаковый разряд и отсутствие переноса из него. Эти знаки