Пред.
След.
Макеты страниц
Распознанный текст, спецсимволы и формулы могут содержать ошибки, поэтому с корректным вариантом рекомендуем ознакомиться на отсканированных изображениях учебника выше Также, советуем воспользоваться поиском по сайту, мы уверены, что вы сможете найти больше информации по нужной Вам тематике ДЛЯ СТУДЕНТОВ И ШКОЛЬНИКОВ ЕСТЬ
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 |
Оглавление
|