Числа, представленные в формате с плавающей точкой (запятой) имеют две части – мантиссу и порядок. Поэтому, операция алгебраического сложения выполняется отдельно над мантиссой и над порядком. Следовательно, в цифровом автомате может быть два суммирующих устройства, для мантиссы и для порядка.
Для чисел с плавающей точкой справедливо условие нормализации: q-1< | mA| < 1 (9.1),
где q - основание системы счисления; mA - мантиссы числа.
Это нормализованное представление числа, и оно требует, чтобы в старшем разряде мантиссы двоичного числа стояла единица. Для двоичной системы это будет означать, что мантисса всегда находится в пределах: 0,5≤ |mA|< 1 (9.2)
При выполнении автоматом операций над числами, нормализуют как входные слагаемые, так и выходной результат.
Операция нормализации числа состоит из условия нормализации (9.1) и осуществляется методом сдвига мантиссы числа в ту или иную сторону. Сдвиги могут производиться влево или вправо в пределах разрядной сетки машины по правилам представленных моделью таблицы 9.1.
Модифицированный сдвиг - операция над модифицированным изображением числа, выполняется по модели таблицы 9.2.
Величина e зависит от кода. Для дополнительного кода ε = 0, для обратного кода e = 1.
При сложении чисел, результат сложения может выйти из нормализации как справа уравнения (9.1) так и слева.
Обозначим через γ - признак нарушения нормализации числа справа, указывающий на необходимость сдвига числа вправо на один разряд для восстановления знака числа.
Признаком нарушения нормализации числа слева δ (когда результат по абсолютной величине оказывается меньше 1/q ) является наличие одинаковых комбинаций в разряде переполнения и старшем разряде цифровой части сумматора.
Итак, рассмотрим сложение чисел А = mApA и В = mBpB имеющих одинаковый порядок pA=pB Обе мантиссы удовлетворяют условию нормализации.
Сложение мантиссы осуществляют на сумматоре ДСДК или ДСОК по правилу сложения чисел аналогично в формате с фиксированной запятой. Если после сложения мантисса результата удовлетворяет условию нормализации (т.е. δ = 0, γ=0), то к этому результату приписывается порядок любого из операндов. В противном случае производится нормализация числа.
Пример1. Найти сумму чисел
А=0,1000*2-3 и В=-0,1011*2-3
Мантиссы и порядок обрабатываются на ДСДК.
Здесь Sg2&R1=11 т.е.δ =1, γ=0. Значить, необходим сдвиг мантиссы влево на 1разряд.
[m'c]=11,1010 Проверяем. Снова δ=1, γ=0. Значить, необходим еще сдвиг влево на 1 разряд.
[m"c]доп. 11, 0100 Проверяем. Все в порядке δ= 0, γ=0.
Одновременно со сдвигом нужна коррекция порядка на
–2(10)=1.010(2) (что равносильно прибавлению дополнительного кода 1.110).
тогда число равно: