全减器真值表怎么理解?

全减器真值表怎么理解?

虽然是一年前的问题了,今天也在看全减器,想找个分析找了很久也没找到

最后终于自己看懂啦,写出来给和我一样在寻找解析的人吧

不是很专业,如果有什么问题欢迎大家指出来

首先我们来看一看全减器的真值表(图源网络)

为了方便理解,我把减式写成这样的形式

在这里输入值是 低位向本位的借位borrow_in(简称in),被减数a,减数b,

输出值为差值diffrent(简称d)和本位向高位的借位borrow_out(简称out)

(只有被减数才需要借位,所以in,out都是相对于a来说的)

输入值in,a,b的状态组合有八种(2的3次方)

我们来一行一行分析

in=0,b=0,a=0时,d=a-b=0,此时a的值足够减b,因此不需要向高位借位,所以out=0;

in=0,b=0,a=1时,d=a-b=1,同样的a的值足够减b,因此不向高位借位,out=0;

in=0,b=1,a=0时,此时a<b,a的值不足以减b了,所以a必须向它的高位借位,因此out=1,二进制的借位规则是借1当2(就像我们十进制运算中向上一位是借1当10运算),借完之后a=2,则d=a-b=1;

in=0,b=1,a=1时,d=a-b=0,同样的a的值足够减b,因此不向高位借位,out=0;

in=1,b=0,a=0时,原本a是足够减b的,但是这里in=1了,即a的低位向a借位了,可是a=0没有办法借给它,因此a需要向自己的高位再次借位,所以out=1,a向高位借位之后为2,再借给a的低位要减一,所以a=1,d=a-b=1;

in=1,b=0,a=1时,in=1了,a的低位向a借位了,a被借走1,a=0,足够减b,不需要向高位借位out=0,d=a-b=0;

in=1,b=1,a=0时,in=1了,a的低位向a借位了,a=0没有办法借给它,因此a需要向自己的高位再次借位,所以out=1,a向高位借位之后为2,再借给a的低位要减一,所以a=1,d=a-b=0;

in=1,b=1,a=1时,in=1了,a的低位向a借位了,a=1可以借给低位,借完之后a=0,不足以减b,a要向自己的高位借位out=1,借完之后a=2,d=a-b=1;

其实这跟我们常用的十进制运算的规则是一样的,只是可能大家不常用二进制运算,再加上对真值表中的值理解的不是很清楚才会觉得一头雾水吧,弄明白之后是不是觉得很简单-0-