4.6. УМНОЖЕНИЕ ЧИСЕЛ В МАШИНАХ С ПЛАВАЮЩЕЙ ЗАПЯТОЙ
Если заданы
в нормальной форме, то их произведение составит
Следовательно, умножение нормализованных чисел состоит из следующих этапов:
1. Определение знака произведения путем сложения по
знаковых цифр мантисс сомножителей.
2. Алгебраическое сложение порядков сомножителей в инверсном коде с целью определения порядка произведения.
3. Умножение модулей мантисс сомножителей по правилам умножения чисел о фиксированной запятой.
4. Нормализация и округление мантиссы результата. Следует учесть, что сомножители являются нормализованными числами. Поэтому денормализация мантиссы произведения возможна только на один разряд вправо. Она устраняется путем сдвига мантиссы на один разряд влево и вычитания единицы из порядка результата.
5. Присвоение знака результату.
Первые три операции могут выполняться одновременно, так как они независимы. Наличие операции определения знака произведения предполагает, что умножение мантисс выполняется в прямом коде. Однако можно умножать непосредственно изображения мантисс с последующей коррекцией результата, как и при числах с фиксированной запятой.
При выполнении операции умножения в машине с плавающей запятой может получиться переполнение отрицательного порядка, которое будет интерпретировано как машинный нуль, если программой пользователя игнорируется признак исчезновения порядка. Может также возникнуть и переполнение положительного порядка. В этом случае в первую очередь необходимо нормализовать мантиссу результата. Если и после этого переполнение порядка не устраняется, то машиной формируется признак переполнения порядка.
Округление мантиссы результата производится следующим образом. Если мантисса результата получилась без нарушения нормализации, то округление производится обычно добавлением единицы в
разряд сумматора. Если мантисса произведения денормализована вправо, то при
разрядном результате вначале производится нормализации, а затем округление; при
-разрядном результате вначале производится округление, а затем нормализация.
Во всех случаях единица округления добавляется в
разряд сумматора только при наличии в нем кода «1».