Нормализация результата сложения вещественных чисел
Немного запутался в теме нормализации мантисс вещественных чисел после различных арифметических операций, которые мы проводим между ними. Точнее есть ситуация, которая вызывает у меня вопросы.
Недавно складывал между собой вещественные числа в формате binary32 и возникла ситуация, которую я описываю в данном вопросе. В качестве операндов были числа с разными знаками (уже описывал результат этого сложения в своём предыдущем вопросе, но всё-таки повторюсь): 1234.5678 и -987.6543.
Фактически вычитаем один операнд из другого, но я решил представить эту операцию в виде сложения двух чисел, где отрицательное значение будет записано в дополнительном коде.
Исходные мантиссы:
1234.5678 — 1.00110100101001000101011
-987.6543 — 1.11101101110100111100000
Выравниваю порядки путём сдвига разрядов на 1 шаг внутри мантиссы числа -987.6543 — 0.11110110111010011110000
Затем выполняю дополнительный код для мантиссы, так как имеем дело с отрицательным числом — 0.00001001000101100010000
И вот мы подошли к ключевому моменту. Я складываю мантиссы между собой: 0.00001001000101100010000 и 1.00110100101001000101011. В дробной части результирующей мантиссы не наблюдается переполнения, а результат сложения 0. и 1., значений, которые отражали состояние неявного нормализующего разряда, по логике вещей должен дать значение 1., но этого почему-то не происходит. Вроде бы и нормализованная мантисса должна получиться сходу, если чисто на арифметику ссылаться, но по факту, если ориентироваться на калькуляторы и на ожидаемый результат, то там по какой-то причине 0 вылазит и нам нужно дополнительно выравнивать порядок, чтобы прийти к нормализованной форме.
Что я не учёл в данной ситуации? Очевидно, что проблема в том, что один из операндов представляет собой отрицательное число и мы оборачиваем его в дополнительный код. Но я хочу понять логику и то, как в данном случае работает арифметика и как мы получаем ноль. Может быть вместо сложения целые части мантисс необходимо вычитывать? В общем, подскажите, пожалуйста! Буду премного благодарен!