原标题:第六章 计算机底层逻辑之3+1=4
我们先回忆下第五章设计的电路
现在我们来验证它能不能正确计算3+1=4。
3+1=4,换算成二进制便是11+1=100
很奇怪,它计算11+1=0,问题出在哪里?
我们来观察下11+1=100的计算过程,
再观察我们的电路,第一组数1+1是没问题的,得到加和数0和进位数1,这能在电路上反应出来,如下图
我们再来观察第二组数,第二组数有两轮计算:1+0=1,1+1=10。我们先来看第一轮计算:1+0=1
由上图可见,电路在计算第二组数第一轮计算时没问题。
再来看第二组数第二轮计算:1+1=10
依上图可看出,1+1产生加和数0和进位数1,但进位数1并没有进位到高位(简而言之,就是左边第一颗灯泡要反应出这个进位数1),问题就出在这里。
先前我们说过,第二组数有两轮计算,这两轮计算都有可能产生进位数1,第一轮计算的进位数可以通过电路正常表达出来,但是第二轮计算的进位数1无法通过电路来表达。我们再来看图,如下
由上图可知,第一轮计算和第二轮计算产生的进位数都需要左下边那颗高位灯泡来表达。所以在第一轮计算产生的进位数、第二轮计算产生的进位数和高位灯泡之间需要建立一个电路,以便灯泡能正确表达进位数,如下图
看上图,我们需要构建一个电路来控制高位灯泡,以便它可以正确的表达进位数。首先,我们要考虑到第二组数可能存在的几种情况:1+1+1,1+1+0,1+0+1,1+0+0,0+0+0,0+0+1,0+1+1,0+1+0。一共存在8种可能,整理这8组数,我们能够发现第一轮计算进位数、第二轮计算进位数和高位灯泡之间存在如下逻辑关系
我们需要找到一组电路来满足上面的逻辑关系式。很有意思,我们在第一章所学的并联电路恰好可以满足以上逻辑关系式,所以我们只需要在原来的电路基础上再多装一个并联电路。如下图所示
经过如此改造后,电路终于能够计算11+1=100,我们可以把这组电路称做二位加法器,因为它能计算任意两个二位以内二进制数之和(正数)。如果大家不信,可以一一验证,这里我就不来给大家验证了。
本章我们非常荣幸能够设计出这个两位二进制数加法器,但我们不会止步于此,我们的目标是星辰大海。下一章我们要去设计三位以及三位以上的加法器。返回搜狐,查看更多
责任编辑: