负数浮点减法电路

时间:2011-12-30 22:12:59

标签: floating subtraction circuit

可能是错误的地方,但我会尝试 我必须设计一个可以加/减浮点的电路 我试图在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(忽略符号位)和A-B就像kfmfe04写的那样。我正在对B的输入进行异或,然后加1,所以我将结果输入2C。
第二个pdf建议在add / sub操作中包含符号位。我会在早上尝试这个。
花了这么多时间锻炼我的大脑,我觉得有点累,不能直接思考。现在我只是想知道我是否应该改变我的电路以便:
切换加/子按钮仍然对B [a +( - b)]进行异或,但在此部分之前我将它们的符号与mantissas进行异或来转换它们进入2c。
这样我可以覆盖负数减法(-A) - ( - B)的情况。
听起来很复杂。

1 个答案:

答案 0 :(得分:0)

基本原则是,在内部,你有一个加法和减法部分。这两个例程只适用于正数。

下面,ADDSUB用于表示内部例程。您必须将操作划分为不同的情况,具体取决于操作数是正还是负:

补充:

pos1 + pos2 => pos1 ADD pos1
pos1 + neg2 => pos1 SUB abs(neg2)
neg1 + pos2 => pos2 SUB abs(neg1)
neg1 + neg2 => - (abs(neg1) ADD abs(neg2))

减法:

pos1 - pos2 => pos1 SUB pos2
pos1 - neg2 => pos1 ADD abs(neg2)
neg1 - pos2 => - (abs(neg1) ADD pos2)
neg1 - neg2 => abs(neg2) SUB abs(neg1)

当然,您也可以简单地将“A - B”定义为“A + -B”,并仅实现添加的情况。