如何用全减器进行减法运算?

receive 精选 20 0

刚开始看百度百科对全减器的介绍时心里也是一直mmp,不过搞懂了后,觉得百度百科的讲解还是挺准确的。下面是百度百科对全减器的真值表的介绍:

“ai表示被减数,bi表示减数,di表示本位最终运算结果,即就是低位向本位借位最终结果,ci表示低位是否向本位借位,c(i+1)表示本位是否向高位借位。(c(i+1)中的i+1是下标···)”

刚开始为什么看不懂呢?因为被一大堆诸如“本位”,“借位”,“低位向本位借位”,“本位向高位借位”这样的纸老虎吓到了。那接下来就对这些逐一分析。

首先明确,输入的是ai、bi和ci。输出的是di和c(i+1)。

因为我们都对十进制的减法比较熟悉,那么我们就以十进制减法为例来解释什么是“本位”,“借位”等等概念。

比如你我都清楚30-11=19,30是被减数,11是减数。但是我们按照小学刚学加减法时候的步骤一步一步来:

画图:

30 30 30

- 11 - 11 - 11

—— => —— => ——

= = 9 =19

图1 图2 图3

首先个位相减:0-1,不够减,所以个位的0需要向十位的3借一位,即“本位向高位借位”,然后再相减,即10-1=9,这样得到图2。

然后十位相减:3-1,但是由于刚刚个位相减时向3借了一位,即“低位向本位借位”,这样就变成了2-1=1,即“本位最终运算结果”。也就得到30-11最终结果如图3所示。

这样再看真值表或许可以明白些。

比如拿真值表的最后一行举例:

ai=1,bi=1,本来应该是ai-bi=1-1=0,但是别忘了ci=1,也就是低位向ai借了一位。

所以这时ai-bi=0-1,但是又不够减了,怎么办呢,所以ai就需要向高位借位了,即本位向高位借位,也就得到了c(i+1)=1。

借位过后再减,也就得到了最终结果也就是di,等于1。

其他的情况类似。

刚开始觉得这样设计好复杂,不过后来觉得一点也不复杂,反而是最简化的设计,就像全加器一样,许许多多个这样的器件组合在一起便可以完成大数的加减运算!

标签: 如何用全减器进行减法运算?

发布评论 0条评论)

还木有评论哦,快来抢沙发吧~