两个多位的二进制数相加时,最低位是没有进位的,即输入A0、B0作为加数,那么输出量也是两个:S0、C1。S0表示本位的相加结果,C1表示向高位的进位。记为S0=A0+B0→C1,或表达为A0+B0=(C1,S0)。
观察计算结果:
S0是A0和B0的“异或”运算,即两者不同时,输出为真(1)。
C1和逻辑“与”的运算是一样的。A0和B0全为真(1)时,输出为真(1)。
这样,可以构造出二进制个位数的加法,称为半加器(HA,Half Adder),如图1-12所示。
图1-12 没有进位的半加器
进一步,考虑有进位时的加法,即,有3个输入端:Ai,Bi和Ci,有两个输出端:Si及Ci+1,这称为全加器(FA,Full Adder)。记为Si=Ai+Bi+Ci→Ci+1,或表达为Ai+Bi+Ci=(Ci+1,Si)。
(www.xing528.com)
图1-13 考虑进位的全加器
观察结果,Si是Ai,Bi和Ci三者的“异或”。
进位Ci+1=Ai&Bi|Ai&Ci|Bi&Ci表示三个加数中两个数同时为1时,才有进位,因此,先做两两相“与”,再做“或”运算,就是进位Ci+1。
用一个半加器和若干个全加器,可以构造出多位二进制的加法器。图1-14是一个4位二进制的加法器,第一位A0+B0,用一个半加器(HA),之后各位的加法运算用全加器(FA)。
图1-14 4位二进制数的加法器
可以用一个控制电路,控制各位加法的先后次序,从个位数开始为第一个节拍。第一个节拍完成个位数的加,得到结果和进位。然后,进入第二个节拍,用全加器完成第二位数的加法,等等,以此类推,直到完成最高位的加法运算。因此,一个4位数的加法要用4个节拍完成,每个节拍就是一个工作周期。
到此为止,我们用逻辑电路构造出了一个可以进行多位数加法的加法器。有了加法器,接下来,就可以仿照1.5节的补码运算,构造出减法器。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。