Реализация суммирования в формате ПЗ
Суммирование
– запись операции в общем виде.
, – представление значений операндов.
Пусть . Сумма запишется в виде:
Для приведения масштабов чисел к единому значению масштаб большего числа будем считать основным, а меньшее число будем приводить к основному масштабу. Следовательно, перед суммированием мантисс мантисса меньшего числа должна быть сдвинута вправо на количество разрядов .
Значение мантиссы результата получаем как ,
Порядок результата получается как
Обычно в практически используемых форматах с ПЗ мантисса представляется в прямом коде независимо от знака. Поэтому перед суммированием мантисс нужно сравнить знаки операндов и при разных знаках выполнять вычитание. Для гарантированного получения прямого кода мантиссы вычитать следует из большей мантиссы меньшую. При этом может потребоваться перестановка мантисс, и, соответственно, их порядков.
В результате суммирования значений мантисс и возможно получение ненормализованного значения : т.е. или – переполнение разрядной сетки суммы.
В этом случае выполняется нормализация мантиссы путем сдвига влево или сдвига вправо на 1 разряд. Сдвиг должен сопровождаться соответствующей коррекцией порядка числа: при сдвиге влево на 1 разряд значение порядка должно быть уменьшено на 1: , а при сдвиге вправо – увеличено на 1: . Также нужно проконтролировать, чтобы скорректированное значение порядка не превысило допустимые пределы значений.
Реализация вычитания производится на основе операции суммирования, но у второго слагаемого должен быть изменен знак:
|