Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Информатика. Ответы 1-35.doc
Скачиваний:
12
Добавлен:
01.03.2025
Размер:
3 Мб
Скачать
☆

2 Способ:

Z = 0|00000|00000

Вносим Y в правую часть Z

Z=0|00000|10011

Начиная с рассматриваем каждое значение Y. Если =1, тогда прибавляем к Z число X. И сдвигаем полученное Z на одно значение вправо.

Если =0, тогда просто сдвигаем значение Z вправо.

  1. Умножение двоичных чисел в дополнительных кодах. Бса.

Умножение дополнительных кодов двоичных чисел с фиксированной запятой позволяет определить дополнительный код произведения.

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

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

Отсюда,

  1. Умножение двоичных чисел в обратных кодах.

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

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

  3. На сумматоре обратного кода произведение получается сразу со знаком и длиной n разрядов.

Алгоритм работает только для дробей.

Пример:

Находим . Если

Помещаем в правую часть Z. Z=00|000000|110101.

Т.к. y<0, то значит, первым действием прибавляем к Z множитель .

Далее смотрим на . Начиная с последней (самой правой) цифры начинаем выполнять действия: если y=1, то к Z прибавляем X обр. и сдвигаем Z вправо.

Если y=0, то просто сдвигаем Z. Если последний (первый слева) y будет равен нулю, то сдвигаем Z вправо, и последним действием, к Z прибавляем .

  1. Приёмы ускорения операции умножения.

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

  2. Если множитель содержит группу из k последовательных единиц, то при анализе цифр этой группы должны быть выполнены k сложений и сдвигов. Однако умножение X*1…1 можно свести к вычитанию множимого из суммы частичных произведений и сдвигу на k разрядов, при этом к оставшимся цифрам множителя прибавляется 1: X*1…1=X*(10…0 – 1) = X*10…0 – X.

  3. Умножение на группы разрядов множителя позволяет сократить время умножения. Например, при умножении на два разряда множителя выполняется следующее. Если разряды множителя содержат:

00 – то сдвиг суммы частичных произведений и множителя на два разряда вправо.

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

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

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

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