逻辑门只能表示输入电平的高低,而高低只能表示现实世界的2个数字,通常用1代表高电平,0代表低电平。那么,如何实现这两个数字相加呢?
因为情况很少,通过枚举的手段,我们可以列出所有的4种组合。
0 + 0 = (0)0
0 + 1 = (0)1
1 + 0 = (0)1
1 + 1 = (1)0
其中,括号的部分代表进位。非括号的部分代表本位。
拆开分别来看:
进位真值表
进位的部分,其实是一个“与门”。可以表示为:(AND x y)
本位的部分,其实是“异或门”。异或门是基础逻辑门的组合。可以表示为:(AND (NOT (AND (x y))) (OR x y))
至此,我们实现了一个1位的加法器,但只能称之为“半加器”。之所以说是“半”,是因为还没有考虑到进位的部分对加法器的影响。
电路图画起来依然很简单,但是要表示成代码,主要是表示2个输出位,还没有很好的办法。
网友评论