Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ргр / методичка от шафеевой.docx
Скачиваний:
25
Добавлен:
08.06.2023
Размер:
3.88 Mб
Скачать

3.2.2. Умножение десятичных чисел в эвм

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

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

Пример.

Вычислить десятичное произведение при , где - множимое, - множитель.

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

Сумматор Множитель Операции

Исходное состояние Y = 32 в счетчике

+

сумматора СМ 0 0 0 0

Множимое X=0190 0 1 9 0 2 – 1 = 1

+

Умножение на 0 1 9 0

младшую цифру 0 1 9 0 1 – 1 = 0

1

множителя 0 3 8 0

+

0 0 3 8

Сдвиг суммы частичных 0 1 9 0 3 – 1 = 2

+

произведений 0 2 2 8

Умножение на старшую 0 1 9 0 2 – 1 = 1

+

цифру множителя 0 4 1 8

0 1 9 0 1 – 1 = 0

Произведение 0 6 0 8

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

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

Пример.

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

Исходное Сумматор Множитель Операции

состояние СМ 0000 0000 0000 0000 Y=3 2 в счетчике

[0190] 0110 0111 1111 0110 2-1=1

0110 0111 1111 0110

коррекция 1010 1010 1010 1010

[0190] 0000 0001 1001 0000 1-1=0

[0190] 0110 0111 1111 0110

0110 1001 1000 0110

коррекция 1010 1010 0000 1010

1

[0380] 0000 0011 1000 0000

0000 0000 0011 1000

[0190] 0110 0111 1111 0110 3-1=2

0110 1000 0010 1110

коррекция 1010 1010 0000 1010

[0228] 0000 0010 0010 1000 2-1=1

[0190] 0110 0111 1111 0110

0110 1010 0001 1110

коррекция 1010 1010 0000 1010

[0418] 0000 0100 0001 1000 1-1=0

[0190] 0110 0111 1111 0110

0110 1100 0000 1110

коррекция 1010 1010 0000 1010

0000 0110 0000 1000

Z = 0 6 0 8

Соседние файлы в папке ргр