全减器真值表如下图。在这里插入图片描述输入值是 低位向本位的借位borrow_in(简称in),被减数a,减数b
输出值为差值diffrent(简称d)和本位向高位的借位borrow_out(简称out)(只有被减数才需要借位,所以in,out都是相对于a来说的)输入值in,a,b的状态组合有八种。

详细分析如下:
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,因此a不向高位借位,所以out=0.
in=1,b=0,a=0时,原本a是够减b的,但是这里in=1,表示a的低位向a借位了,可是a=0没有办法借给它,因此a需要向自己的高位借位,所以out=1,a向高位借位之后为2,借给a的低位要减1,所以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的低位要减1,所以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.
总结:其实这实质跟常用的十进制运算的规则是一样的,只是变成了是二进制的运算环境下,如果变成其他进制可以类比习得。

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐