Обработка данных с плавающей запятойотличается тем, что она включает в себя, кроме обработки мантисс, обработку "сдвинутых" порядков (характеристик). При операциях сложения/вычитания вначале производится операция выравнивания порядков, а затем операция сложения/вычитания мантисс. При этом результирующая мантисса может оказаться ненормализованной дробью. В этом случае производится третий этап – нормализация результата.
Выравнивание порядков выполняется следующим образом:
1. сравниваются порядки операндов,
2. если порядки не равны, производится денормализация операнда с меньшим порядком. Мантисса сдвигается вправо с коррекцией порядка, до совпадения порядков обоих операндов.
Нормализация результата заключается в сдвиге мантиссы вправо (при переполнении) или влево с коррекцией порядка до получения нормализованной мантиссы.
Пример:
Операнд А=0,11112 × 21,, после выравнивания порядков А = 0,01112 × 22
Операнд В=0,11012 × 22,
Порядки операндов не равны. Производится денормализация операнда А. После выравнивания порядков А = 0,01112 × 22
С = А+В = 1,01002 × 22, после нормализации С = 0,10102 × 23.
С = В–А = 0,01002 × 22, после нормализации С= 0,10002 × 21.
При выполнении операций умножения или деления производятся следующие действия (возможно, параллельные) над компонентами чисел в формате с плавающей запятой:
· умножение или деление мантисс,
· сложение или вычитание порядков.
· Если мантисса результата получается ненормализованной, то производится ее нормализация.
Пример:
Операнд А=0,10002 × 21,,
Операнд В=0,10012 × 22,
С=А × В
Умножение мантисс: МС = 0,10002 × 0,10012= 0,0100 10002 или, с учетом разрядности регистров, МС = 0,01002
Сложение порядков: ПС = 1+2=3 (21× 22=23)
Предварительный результат: С=0,01002× 23
Или, После нормализации мантиссы – С=0,10002 × 22.
Таким образом, операции обработки данных с плавающей запятой сводятся к серии операций над их компонентами (порядками и мантиссами) как с числами в формате с фиксированной запятой.