可能问错了地方,但我会尝试。
我必须设计一个可以加/减浮点的电路,我尝试使用 IEE 754 标准中的有符号幅度数来实现它。它们非常大,所以我决定从较小的东西开始,以证明这个概念。
我在网上找到了一些算法来执行正数的加法和减法。
大多数看起来像这样:
http: //meseec.ce.rit.edu/eecc250-winter99/250-1-27-2000.pdf
。
他们没有解释符号位会发生什么。现在我很困惑。根据我在网上找到的内容,执行起来没有区别:
A-B and A- (-B)
有人可以帮我提供一个详细解释算法的链接吗?
感谢所有答案我发现这个代数解释很有用http://howardhuang.us/teaching/cs231/08-Subtraction.pdf
目前我的电路执行 A+B(不考虑符号位)和 AB 就像 kfmfe04 写的一样。我对 B 的输入进行异或运算并加 1,所以我得到了 2C 的结果。
第二个 pdf 建议在 add/sub 操作中包含符号位。我会在早上试试这个。
花了这么多时间锻炼我的大脑,我觉得有点累,无法思考。现在我只是想知道我是否应该改变我的电路,以便:
切换添加/子按钮仍然对 B [a+(-b)] 进行异或,但在这部分之前,我将尾数与它们的符号异或以将它们转换为 2c。
这样我就可以涵盖负数减法(-A)-(-B)的情况。
不过听起来很复杂。