只有当两个开关都断开的情况下灯泡才会亮,任何一个开关闭合灯泡都会熄灭,这个操作和 OR 操作相反,称之为 NOR 即或非门,简化后的符号比或门多了个小圆圈,代表反向。
或者这样,组合着画也一样。
然后我们再来看看这种电路,只有两个开关都闭合才会熄灭,这和与门正好相反,称之为 NAND 与非门。
简化符号是这样的,也是多了个圆圈:
我再总结一下这几个简化图,加深一下印象。
二进制加法机有了上面这几样东西,我们就可以造个二进制加法机,不要小看加法,因为可以用加法来实现减法、乘法、除法等操作。
加法我们知道会得到当前的和、进位这两个信息,例如二进制中 1 + 1,当前和是 0 ,进位 1。
进位 0 10 0 0
1 0 1
可以看到只有 1 +1 进位 1 ,再仔细看看是不是和 AND 操作很像?只有 1 AND 1 结果才为1 。
AND 0 10 0 0
1 0 1
我们再来看看当前和的计算
和 0 10 0 1
1 1 0
大家可以在脑子里面想象下,如果拿 OR 操作来套用的话右下角结果不对,如果是 NAND 操作的话左上角结果不对,所以得两个结合一下,电路图如下。
分别通过或门和与非门之后再做与门,出来的结果就是当前和的结果,这个其实就是 XOR 异或门,简化表示就是:
所以加法需要通过两个逻辑门,分别是异或门来操作当前和,与门来操作进位,结合起来如下图所示:
这其实就是个半加器,简化的图如下所示:
那为什么叫半加器?因为只能一位一位的加,而前一位的进位参与不到下一位的计算,如果要加入进位那下一位的运行就是 A 的当前位 + B 的当前位 + A 和 B 之前的进位。
因此需要改装一下,两个半加器合起来再加一个或门。
假设 A 输入 1 , B 输入 1, 进位输入 1,从最左边开始第一个半加器 S 输出 0 , CO 输出 1,第二个半加器 S输出 1,CO 输出 0,最终和输出 1,进位输出 1,结果没毛病可行,这叫全加器,简化一下图:
全加器有了,咱们得组合起来,并且需要有输入和输出,我们通过开关来输入数字,由灯泡的亮暗显示结果。
这就是一个 8 位的计算器,有 9 个灯是因为两个 8 位相加结果可能是 9 位。
然后从最右边开始如下图所示接上全加器,进位接地表示 0 输入
中间的都如下接法,前一个的进位输出是下一位的进位输入。
最后一个就是把进位输出直接接到第九个灯上就行了。
此时你摆动控制面板的开关,就可以通过机器得到相加的结果。简化的画法如下图所示:
现在我们已经造出了八位加法器了,如果要 16 位呢?简单合一下就好了。