УМНОЖЕНИЕ ДЕСЯТИЧНЫХ ЧИСЕЛ
Умножение десятичных чисел, как и умножение двоичных чисел, производится путем нахождения ЧП и СЧП, где ЧП представляет собой двоично-десятичное произведение десятичной цифры МН на десятичную цифру ММ.
Отличия десятичного умножения от двоичного состоят в том, что, во-первых, выделение цифр МН и ММ для их умножения не сводится к однократному двоичному сдвигу, а требует специальной процедуры распаковки (выделения цифр); во-вторых, формирование ЧП двух десятичных цифр не сводится к альтернативному выбору между значением множимого и нулем, а требует специальной процедуры умножения цифр; в-третьих, формирование СЧП может быть реализовано сложением только однобайтных чисел с применением команды десятичной коррекции DAA. Указанные отличия существенно усложняют программы умножения десятичных чисел, увеличивая время их выполнения и затраты памяти. Поэтому десятичное умножение целесообразно использовать для сомножителей малой разрядности, а обработку чисел большой разрядности вести средствами двоичной арифметики с предварительным преобразованием десятичных чисел в двоичные.Рассмотрим две программы умножения десятичных чисел. Программа У410 реализует точное умножение формата 4-4 = 8 двух десятичных цифр методом двоичнодесятичного накопления ММ в соответствии со значением МН:
Сравнивая быстродействие и затраты памяти программы У810 с аналогичной по точности программой двоичного умножения У88А1, можно заметить трехкратное преимущество последней по быстродействию и пятикратное по экономии памяти. Быстродействие программ десятичного умножения можно существенно повысить (увеличив затраты памяти) за счет применения табличных методов умножения [20].
1.5.