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

Можно вдвое уменьшить верхнюю оценку числа единиц в множителе Z по сравнению с Y и как следствие в среднем вдвое увеличить количество равных нулю частных произведений. Для этого введем правила обнаружения изолированных единиц и нулей в цепочке разрядов Y, и будем сохранять изолированную 1, а изолированный 0 заменять .

Пусть Y содержит цепочку 1 с изолированным нулем:

Y:

После преобразования Y в по табл.4.5 получим: Z1:

Если изолированный ноль в Y заменить на , то:

Не трудно убедиться в том, что количественные эквиваленты всех трех цепочек равны, а количество нулей в цепочке Z больше чем в Z1.

Пусть Y содержит цепочку нулей с изолированной единицей: Y:

После преобразования Y в Z1 по табл.4.5 получим: Z1:

Если не заменять изолированную 1 в Y, то Z:

сохранит значение Y.

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

Правило преобразования, в основу которого положен принцип просмотра Y от младшего разряда к старшему, описывается табл.4.6. Здесь

V – вспомогательное двоичное слово с той же разрядностью, что и Y;

– индекс разряда (индекс младшего разряда , индекс разряда знака ).

Разряд слова V указывает, что в Y справа от преобразуемого разряда размещена цепочка нулей. При справа от разряда размещена цепочка единиц.

Разряд всегда, так как справа от младшего разряда размещена цепочка нулей.

Например, если , то преобразуемый разряд содержит единицу, изолированную нулями, которую следует сохранить и считать, что разряду по-прежнему предшествует цепочка нулей. Поэтому в строке 3 табл.4.6 и .

П

Таблица 4.6

yi+1 yi vi

zi vi+1

Частное

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

0 0 0

0 0 1

0 1 0

0 1 1

1 0 0

1 0 1

1 1 0

1 1 1

0 0

1 0

1 0

0 1

0 0

1 1

1 1

0 1

0

X

X

0

0

–X

–X

0

ри следует принять , так как слева от знакового разряда цепочка содержит цифру знака.

При умножении результат преобразования не фиксируют, а лишь подразумевают. Так, например, при произведение X на разряд принимают равным (–X), поскольку .

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

Пример 4-43. Приведены результаты преобразования дополнительных к

Y: 001001101100101д (+4965) 010 10 11 001001 1д(+5523) 10000д(-16) 11101д (-3)

V: 0 00011111000000 1 11 11 10 000011 0 0 0000 1 1000

Z: 0 010100 0 00101(+4965) 1 0 0 0 001010 (+5523) (-16) (-3)

одов двоичных чисел по правилу, описанному табл.4.6.

Верхняя оценка количества единиц в Z составит , а не , как в случае преобразования по табл.4.5. Следовательно, не менее половины строк в матрице частных произведений будут содержать нули. В среднем количество не равных нулю строк уменьшится при большом почти в 1,5 раза, что существенно снизит трудоемкость вычисления.

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