
- •1.4. Алфавитное представление и преобразование информации
- •Глава 2
- •2.1. Непозиционные системы счисления
- •2.2. Позиционные системы счисления
- •Неоднородные позиционные системы счисления
- •Однородные позиционные системы счисления
- •2.3. Кодированные позиционные системы счисления
- •2.4. Системы счисления специального назначения
- •2.6. Символические системы счисления
- •2.7. Перевод чисел из одной системы счисления в другую
- •Перевод целых чисел из одной позиционной системы счисления в другую
- •2.8. Выбор системы счисления для применения эвм
- •2.9. Двоичная система счисления
- •2.10. Представление двоичных чисел в эвм
- •2.11. Точность представления чисел в эвм
- •Глава 3
- •3.1. Основные понятия
- •3.2. Операция алгебраического сложения в эвм
- •3.3. Операция сдвига
- •3.4. Сложение чисел в машинах с плавающей запятой
- •8.5. Округление чисел в эвм
- •3.6. Точность выполнения операций в машине с плавающей запятой
- •3.7. Вычисления с двойной точностью
- •Глава 4
- •4.1. Общие сведения об операции умножения
- •4.2. Умножение, выполняемое методом накопления частичных произведений
- •4.3. Сравнение схем умножения методом накопления
- •4.4. Методы ускорения операции умножения
- •4.5. Умножение чисел, заданных в дополнительном коде
- •4.6. Умножение чисел в машинах с плавающей запятой
- •4.7. Особенности выполнения операции умножения в современных эвм
- •4.8. Деление чисел с восстановлением остатков
- •4. 9. Деление без восстановления остатков
- •4.10. Машинные схемы деления
- •4.11. Деление чисел в дополнительном коде
- •4.13. Деление чисел в машинах с плавающей запятой
- •Глава 6
- •6.1. Сложение в прямых д-кодах
- •6.2. Сложение чисел в инверсных д-кодах
- •Для кода д2
- •6.3. Сдвиг д-кодов
- •6.4. Умножение чисел в д-кодах
- •6.5. Деление чисел в д-кодах
- •6.6. Перевод чисел в д-кодах
4.6. Умножение чисел в машинах с плавающей запятой
Если заданы А = а • 2m1 и В =b • 2m2 в нормальной форме, то их произведение составит
АВ = аb • 2 m1 + m2.
Следовательно, умножение нормализованных чисел состоит из следующих этапов;
1. Определение знака произведения путем сложения по mod2 знаковых цифр мантисс сомножителей.
2. Алгебраическое сложение порядков сомножителей в инверсном коде с целью определения порядка произведения.
3. Умножение модулей мантисс сомножителей по правилам умножения чисел с фиксированной запятой.
4. Нормализация и округление мантиссы результата. Следует учесть, что сомножители являются нормализованными числами. Поэтому денормализация мантиссы произведения возможна только на один разряд вправо. Она устраняется путем сдвига мантиссы на один разряд влево и вычитания единицы из порядка результата.
5. Присвоение знака результату.
Первые три операции могут выполняться одновременно, так как они независимы. Наличие операции определения знака произведения предполагает, что умножение мантисс выполняется в прямом коде. Однако можно умножать непосредственно изображения мантисс с последующей коррекцией результата, как и при числах с фиксированной запятой.
При выполнении операции умножения в машине с плавающей запятой может получиться переполнение отрицательного порядка, которое будет интерпретировано как машинный нуль, если программой пользователя игнорируется признак исчезновения порядка. Может также возникнуть и переполнение положительного порядка. В этом случае в первую очередь необходимо нормализовать мантиссу результата. Если и после этого переполнение порядка не устраняется, то машиной формируется признак переполнения порядка.
Округление мантиссы результата производится следующим образом. Если мантисса результата получилась без нарушения нормализации, то округление производится обычно добавлением единицы в (n + 1)-й разряд сумматора. Если мантисса произведения денормализована вправо, то при 2п-м разрядном результате вначале производится нормализация, а затем округление; при (n + 1)-разрядном результате вначале производится округление, а затем нормализация.
Во всех случаях единица округления добавляется в (n + 1)-й разряд сумматора только при наличии в нем кода «1».
4.7. Особенности выполнения операции умножения в современных эвм
В моделях современных ЭВМ, например ЕС-1030, ЕС-1050, реализуется способ умножения чисел с фиксированной запятой в дополнительном коде, так как в памяти машин числа хранятся в этом коде. При этом знак произведения вырабатывается автоматически в ходе умножения сомножителей и произведение получается в коде, соответствующем его знаку.
Практически во всех моделях умножение производится, начиная с младших разрядов множителя со сдвигом суммы частичных произведений, при этом используются схемы ускоренного умножения. Так, в ЕС-1030 умножение производится одновременно на 2 разряда множителя, а в ЕС-1050 — на четыре.
Коррекция псевдорезультата при А > 0, В < 0 производится в конце операции при умножении А на знаковую цифру множителя путем прибавления к псевдорезультату [A] Д.
Коррекция псевдорезультата при А < 0, В >0 выполняется последовательно в процессе умножения благодаря модифицированному сдвигу суммы частичных произведений. Как мы видела, необходимое количество единиц, вводимых таким образом в процессе умножения, оказывается соответствующим количеству единиц в дополнительном коде множителя [-В] Д .
При А < 0 и В < 0 первый корректирующий член учитывается в конце операции, а второй — последовательно в ходе умножения.
В некоторых ЭВМ, например СМ-1210, умножение производится за один такт с помощью матричного умножителя, а в процессоре СВС-1 комплекса ЭЛЬ БРУС-1 умножение производится сразу на 8 разрядов множителя.
В памяти ЭВМ серии ЕС мантиссы и порядки нормализованных чисел хранятся в прямом коде. Поэтому мантиссы перемножаются как положительные числа, что не требует коррекции результата. Знак произведения определяется путем суммирования знаковых цифр сомножителей по mod2.
Умножение мантисс производится как и чисел при фиксированной запятой. Если мантиссы имеют двойную длину, то в некоторых моделях, например ЕС-1030, младшая половина множителя умножается сначала на старшую половину множимого, а затем на младшую. После этого старшая половина множителя умножается последовательно на старшую и на младшую половины множимого. Все промежуточные произведения складываются сдвинутыми соответствующим образом относительно друг друга.
Перед началом умножения мантиссы сомножителей проверяются на равенство нулю с целью формирования нулевого результата без выполнения операции, а в конце операции мантиссы результатов нормализуются и округляются.