我正在使用 MARS 进行浮点加法。
SameExponent:
add $s6,$s4,$s5
对齐指数后,我将有效数字相加,但是如何检测总和是否仍归一化以便将有效数字向左或向右移动?谢谢
我正在使用 MARS 进行浮点加法。
SameExponent:
add $s6,$s4,$s5
对齐指数后,我将有效数字相加,但是如何检测总和是否仍归一化以便将有效数字向左或向右移动?谢谢
如果有效数字是 -A ... +A 范围内的整数,则将它们相加的结果在 -2A ... +2A 范围内。要标准化结果,您需要向左或向右移动以将最重要的 1 位返回到标准化位置,并跟踪您移动了多少,以便您可以相应地调整指数。
最大需要右移一位;如果您的论点可能是正面的或负面的,那么左移可能会更多。最简单的方法是使用while
-style 循环,左移一位,直到 MSB 位于您想要的位置。
如果您想要更快的速度(尽管 MIPS 没有),那么找到大于或等于给定值的最小幂的算法有一些替代的可能性。