-1

这是示例(我已提前将它们转换为十进制)。
A 是 01000001000010000000000000000000^2(十进制 8.5)
B 是 01000000000100000000000000000000^2(十进制 2.25)

((+A)-(+B)) 应该是十进制的 6.25。规范化 A 和 B 并匹配指数。

A = 1.00010 * 2^3
B = 0.01001 * 2^3

我可以在纸上减去这个,如下所示。

1.00010 * 2^3
- 0.01001 * 2^3
'---------------
0.11001 * 2^3

这是 110.01^2,十进制是 6.25。

我的问题是 CPU 是如何解决这个问题的?我知道 CPU 会将 B 转换为二进制补码并添加负 B。但每次我尝试这样做时,我都会得到 6.75 作为答案。有人可以告诉我 CPU 如何将 B 转换为两个补码以获得负数,然后添加到 A 以获得 6.25 作为答案。谢谢

4

1 回答 1

-1

我自己找到了答案。Twos 也可以补充这里的工作。使用二进制补码(翻转位并加 1 位)将 B 转换为负值,然后将负数加到 A。但必须先计算带指数的小数部分。谢谢

于 2017-01-06T05:03:01.717 回答