Реферат: Операции с числами с плавающей запятой
если См [8 ¸ 11] ¹ 0 то M1;
если См ¹ 0 то М6;
РгСм: = 0, прерывание из-за потери значимости;
M6:
Сч1:=Сч-1, РгСм := Л(4)См, РгСм[28¸31]: = 0;
РгЗ: = РгСм;
РгВ : = РгЗ, РгА: = 0;
РгСм: = См;
если Сч1[0]=0 то М5;
РгСм: = 0, прерывание из-за исчезновения порядка;
Сложение и вычитание выполняются приближенно, так как при выравнивании порядков происходит потеря младших разрядов одного из слагаемых. В этом случае погрешность всегда отрицательна и может доходить до единицы младшего разряда. Чтобы уменьшить погрешность, применяют округление результата. Для этого может быть использован дополнительный разряд сумматора, в который после выполнения суммирования добавляется 1.
Анализ программы на примерах
Y1 = 0 1001101 110100101110011011100011 = 0 4D D2E6E3
X1 = 1 1001011 110001100101110110100111 = 1 4B C65DA7
Выравнивание порядков :
МК: РгС>РгD (01001101>01001011) переход на МК1
MК1: сдвигаем мантиссу Х1 вправо на 4 разр. получаем 000011000110010111011010 и увел. порядок Х1 на 1 получаем 01001100 переход на МК
МК: РгС>РгD (01001101>01001100) переход на МК1
МК1: сдвигаем мантиссу Х1 вправо на 4 разр. получаем 000000001100011001011101 и увел. порядок Х1 на 1 получаем 1001101 переход на МК
МК: РгС=РгD (01001101=01001101)
Порядки выравненны.
Сложение мантисс:
ТгЗн1 ¹ ТгЗн2 переход на М3
М3: ТгЗн1 ¹ 0 Þ РгВ = (00110010 111111110011100110100010); РгСм=РгА + РгВ + 1 = 01011011 110100100010000010000110;
См[0] = 0 Þ переход на М1