Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
СОДЕРЖАНИЕ 3 (2).doc
Скачиваний:
28
Добавлен:
31.08.2019
Размер:
5.65 Mб
Скачать
        1. Умножение на два разряда множителя с увеличенным количеством нулевых частных произведений

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

Разобьем множитель Y на двойки разрядов справа налево, Воспользовавшись табл.4.6 определим по значениям тройку разрядов и результаты запишем в табл.4.9. По значениям найдем частное произведение на эту двойку. Здесь индекс соответствует младшему разряду, причем . Прочерк в колонке означает, что значение не влияет на результат преобразований.

При умножении на множитель с четным числом разрядов , при нечетном числе разрядов , а может быть любым.

С

Таблица 4.9

yi+2 yi+1 yi vi

zi+1 zi vi+2

Частное

произведение

– 0 0 0

– 0 1 0

0 1 0 0

1 1 0 0

– 1 1 0

– 0 0 1

0 0 1 1

1 0 1 1

– 1 0 1

– 1 1 1

0 0 0

0 1 0

1 0 0

1 0 1

0 1 1

0 1 0

1 0 0

1 0 1

0 1 1

0 0 1

0

X

2X

-2X

-X

X

2X

-2X

-X

0

труктура матриц частных произведений такая же, как в примере 4-45. Различие состоит в составе частных произведений.

В примере 4-45 вариант A состав частных произведений . Если при этом же значении множителя применить табл.4.9, то состав частных произведений . Разумеется, что значение произведения от этого не изменится.

Выигрыш в количестве частных произведений равных нулю по сравнению со способами умножения, описанными в разделах 4.4.2.8 и 4.4.2.9, не велик.

        1. Изменение операции над частным произведением

В разделах 4.4.2.1-4.4.2.10 рассматривались различные способы умножения, которые сводятся к выполнению операций сложения или вычитания частных произведений. Поскольку операции сложения и вычитания взаимозаменяемые (раздел 4.3.7), любой способ умножения имеет множество модификаций. Конструктор системы умножения, приняв какой-либо способ умножения за основу, может изменить операции, выполняемые над строками матрицы, по своему усмотрению. Для этого достаточно изменить знаки чисел записанных в строках. Разумеется, что изменение знака числа в строке должно выполняться по правилу справедливому для кода, в котором записано число.

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

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

Напротив, Конструктор может изменить знак числа в строке матрицы, изменив операцию, выполняемую над строкой. Например, при умножении способом, описанным в разделе 4.4.2.9, в одни строки матрицы должны быть записаны частные произведения со знаком множимого, а в другие – со знаком обратным знаку множимого (см. пример 4-45). Если Конструктор считает целесообразным записывать во все строки матрицы частные произведения со знаком множимого, то он может это сделать, заменив операцию, выполняемую над строками со знаком обратным знаку множимого, ей обратной.

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

П ример 4-46. Выполняется умножение в дополнительном коде на два разряда множителя тех же двоичных чисел, что и в варианте B примера 4-45.

В варианте A с целью замены операции сложения строк матрицы операцией вычитания знаки частных произведений, вычисленные на основании табл.4.8, изменены на обратные.

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

Пример 4-47. Вариант A примера является копией варианта C примера 4-45. Верхняя строка матрицы содержит 1 дополняющие коды отрицательных частных произведений до дополнительного. Содержимое верхней строки в варианте A интерпретируется как дополнительный код положительного числа с шестеркой старших разрядов, содержащих нули заданные неявно.

В

A B

X: 10001100 д (-116) 10001100 д

Y: 11 01 11 01 д (-35) 11 01 11 01 д

+ 1 0 1 0 – 1111110111100

+ 11111110001100 X + 11111110001100

+ 000001110010 –X×4 + 000001110010

+ 1100011000 2X×16 + 1100011000

+ 01110010 X×64 + 01110010

0000111111011100д 0000111111011100д

+4060 +4060

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

Целесообразны или нет подобные преобразования – решать Конструктору системы. Здесь мы лишь констатируем возможность подобных преобразований и модификации способов умножения.