Binary 单精度浮点数减法是如何实现的?

Binary 单精度浮点数减法是如何实现的?,binary,cpu-architecture,single-precision,Binary,Cpu Architecture,Single Precision,以下是示例(我已提前将它们转换为十进制)。 A是0100000010000000000000000000000^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.

以下是示例(我已提前将它们转换为十进制)。
A是0100000010000000000000000000000^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转换成2的补码,然后加上负的B。但每次我试着这样做,我得到的答案是6.75。有人能告诉我CPU是如何把B转换成两个补码得到一个负数,然后加上a得到6.25作为答案的吗。
谢谢

我自己找到了答案。两个在这里也起补充作用。使用两个补码(翻转位和加1位)将B转换为负值,然后将负值添加到a。但必须首先计算带指数的小数部分。谢谢

你好,丹,我想一步一步地看看cpu如何将B转换成两个补码,并将负数B添加到A。通过一步一步地看,我将帮助我了解许多我遇到困难的事情。谢谢,我认为我的问题很具体,它问“cpu如何在将数字转换为两个补码后减去数字”。我可以用铅笔和纸来做这件事,但我不知道cpu是怎么做的。我特别需要在作业中说明cpu是如何完成的。谢谢,没有不尊重CPU做什么这取决于架构,例如,是先处理sNaN、qNaN和infinity的特殊情况,然后计算结果,还是CPU并行处理这两种情况,并在稍后阶段决定要做什么。CPU设计者使用一些技巧来快速实现这一点,或者在芯片上节省同样的空间。当然,有一些简单的方法来计算减法。