Теория:

При выполнении сложения и вычитания с кодами чисел в нормализованном виде их порядки выравнивают, мантиссы складывают, после чего нормализуют результат.
 
Пример \(4\)

Определи сумму и код суммы чисел \(A\) и \(B\) (числа в десятичной системе счисления).
 
\(A = 51,0625\);
B = 21634.
 
Переведём число в шестнадцатеричную систему счисленияA =51,062510=33,116B = 21634= D8,C16
НормализуемA =0,33116×(1016)2B=0,D8C16×(1016)2
Значение порядкаpx = 4216px = 4216
 [KA]=42331000[KB]=42D8C000
 
Сложим мантиссы:
 
 
\(3\)
\(3\)
\(1\)
\(0\)
\(0\)
\(+\)
\(D\)
\(8\)
\(C\)
\(0\)
\(0\)
\(1\)
\(0\)
\(B\)
\(D\)
\(0\)
\(0\)
 
Полученная сумма обладает более высоким порядком, чем её слагаемые, поэтому нуждается в дополнительной нормализации:

[KA+B]=4310BD00.
 
Выполним проверку:

51,0625+21634=2671316=10B,D16.
 
Нормализуем:
 
10B,D16=0,10BD16×(1016)3.
 
[KA+B]=4310BD00.
 
Ответ: [KA+B]=4310BD00.
 
Пример \(5\)

Определи сумму и код суммы чисел \(A\) и \(B\) (числа в десятичной системе счисления).

A = −265,75;B = 10716.
 
Переведём число в шестнадцатеричную систему счисленияA=265,7510109,C16B = 10716= А,716
НормализуемA=0,109C16×(1016)3B =0716×(1016)1
Значение порядкаpx= 4316px = 4116
 [KA]=C3109C00[KB]=41А70000
 
Выровняем порядки по большему:

[KA]=C3109C00; [KB]=41A70000=4300A700.
 
Перед сложением мантисс вспомним, что отрицательное число должно быть представлено в дополнительном коде, тогда можно заменить вычитание сложением.
 
В примере предыдущего параграфа мы воспользовались способом получения дополнительного кода через вычитание из переполненной разрядной сетки.
 
Скриншот 09-04-2022 001709.jpg
 
Сложим мантиссы.
 
Скриншот 09-04-2022 001810.jpg
 
Полученная сумма — отрицательная. Определим её прямой код.
 
Скриншот 09-04-2022 001924.jpg
 
Полученный прямой код суммы обладает более низким порядком, чем её слагаемые, поэтому нуждается в дополнительной нормализации:

[KA+B]=C2FF5000.
 
Выполним проверку:

A+B=265,75+10716=255516=FF,5.
 
Нормализуем:
 
FF,516=0,FF516×(1016)2.
 
[KA+B]=C2FF5000.
 
Ответ: [KA+B]=C2FF5000.
 
При выполнении умножения вещественных чисел в нормализованном виде их порядки складывают, мантиссы перемножают, после вычислений результат нормализуют.
 
При выполнении деления вещественных чисел в нормализованном виде их порядки вычитают, мантиссы делят, после вычислений результат нормализуют.

Следует также принимать во внимание переполнение разрядной сетки при выполнении арифметических операций. Связано это с её ограниченностью при работе с реальными величинами, например со слишком большими или слишком малыми числами, а также в случае округления чисел и накопления ошибки округления при выполнении многочисленных вычислительных операций. Так, известен и описан случай ошибки округления, приведший к искажению траектории баллистической ракеты во время военной операции «Буря в пустыне».

Пример \(6\)

Определи произведение и код произведения вещественных чисел \(X\) и \(Y\) (числа представлены в виде машинных кодов в \(32\)-разрядной сетке).

\(X = 40A00000\); \(Y = 41B00000\).
 
Перемножим мантиссы. Для перемножения удобно воспользоваться двоичным представлением значимой части мантиссы:

mX=A16=10102; mY=B16=10112.
 
Выполним умножение.
 
Скриншот 09-04-2022 004751.jpg
 
Произведение переведём в \(32\)-разрядный код с учётом суммы порядка (\(0 + 1 = 1\)):

[KX×Y]=C16E0000.
 
Выполним проверку:

X=0,A16=0,10102=12+18=5810;Y=B16=10112=1110;X×Y=11×58=558=(678)10=6,E16.
Источники:
Изображения. © ЯКласс.