Главная > Прикладная теория цифровых автоматов
НАПИШУ ВСЁ ЧТО ЗАДАЛИ
СЕКРЕТНЫЙ БОТ В ТЕЛЕГЕ
<< Предыдущий параграф Следующий параграф >>
Пред.
След.
Макеты страниц

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

Также, советуем воспользоваться поиском по сайту, мы уверены, что вы сможете найти больше информации по нужной Вам тематике

ДЛЯ СТУДЕНТОВ И ШКОЛЬНИКОВ ЕСТЬ
ZADANIA.TO

4.5. УМНОЖЕНИЕ ЧИСЕЛ, ЗАДАННЫХ В ДОПОЛНИТЕЛЬНОМ КОДЕ

Операцию умножения проще всего выполнять в прямых кодах чисел. Вместе с тем применение инверсных кодов позволяет существенно упростить операцию алгебраического сложения. Поэтому числа желательно хранить в ЗУ и умножать также в инверсном коде. В этом случае сомножители заданы в прямом коде, если они положительны, либо в инверсном коде, если они отрицательны. Необходимо получить произведение в прямом коде, если оно положительно, или в инверсном коде, если оно отрицательно. При этом, с целью устранения циклических переносов, рациональнее использовать дополнительный код. При умножении в дополнительном коде, так же, как и при алгебраическом сложении, требуется введение поправок в предварительный результат. Эти поправки вносятся исходя из следующих предпосылок.

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

1. А > 0, В > 0. Случай тривиальный, получаем сразу истинное значение положительного произведения:

2. . В этом случае получается следующий результат (псевдопроизведение):

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

3. А < 0, В > 0. Получаем после непосредственного применения алгоритма умножения:

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

4. А < 0, В < 0. После непосредственного применения алгоритма умножения получаем

Псевдорезультат требует коррекции на величину так как лишняя единица размещается в знаковом разряде и может быть просто заменена знаком произведения.

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

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

Пример, Заданы

Получаем правильный результат со знаком.

При отрицательном множимом и положительном множителе требуется коррекция результата на величину — В, введение которой!

зависит от схемы умножения. Для любой схемы умножения справедливо

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

Пример. Заданы

Для 1-й схемы выполняется модифицированный сдвиг суммы частичных произведений, для 4-й — множимого,

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

Пример. Заданы

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

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

В дополнительных кодах произведение имеет вид

где — знаковый разряд множителя. Его можно представить следующим образом!

При этом Тогда, о учетом того что перед началом умножения в сумматоре находится код нуля, для четвертой схемы умножения на нулевом шаге будем иметь

На первом шаге

На шаге

Аналогичные результаты можно получить и для остальных схем умножения.

Таким образом, произведение формируется по следующим правилам:

1) если данная цифра множителя равна 1, а цифра соседнего младшего разряда множителя есть 0, то множимое со своим весом следует вычитать;

2) если данная цифра множителя 0, а цифра соседнего младшего разряда есть 1, то множимое следует прибавлять со своим весом;

3) если данная цифра множителя такая же, как и цифра соседнего младшего разряда, то данное частичное произведение равно 0.

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

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

Примеры

Во всех случаях получены прежние результаты.

1
Оглавление
email@scask.ru