对于计算机来说,无论百万、千万,还是上亿的数值运算,都可以瞬间得出结果,这主要归功于计算机的核心逻辑单元——加法器,因为加法运算是计算机唯一要做的工作,而减法、乘法和除法,本质上都是以加法为基础进行的。
计算机在进行运算时,首先要把十进制转换成二进制,基本的1位二进制加法 有4种情况:0+0=0,0+1=1,1+0=1,1+1=1,0。为了统一格式,我们采用两位数字 表示结果,其中低位为加和位,高位为进位位。
首先,分析加法位与两加数的关系,当两加数同号时,加法位为0;当两加数异号时,加法位为1,这正是异或门的逻辑。
再分析进位位与两加数的关系,只有当两加数同为1时,进位位才为1,否则为0,这是与门的逻辑。
所以,用一个异或门和一个与门,可以实现一位二进制加法的逻辑,其中异或门输出的是加和,与门输出的是进位。
当输入A、B均为0时,加和输出和进位输出都是0
当输入A为1,B为0时,输出加和为1,进位为0
当输入A为0,B为1时,输出加和为1,进位为0
当输入A、B均为1时,输出加和为0,进位为1。
半加器只能处理1位二进制加法,能产生进位,但不能处理进位。
我们可以把两个半加器组合在一起,其中半加器1的加和输出,接入半加器2的输入端B;用或门连接两个半加器的进位输出,并产生全加器的进位输出;半加器2的加和输出作为全加器的加和输出,半加器2的输入端A作为全加器的进位输入,就可以接收来自低端的进位,具备了多位加法的逻辑基础。
多位十进制加法的过程是,从低位到高位逐位相加,每次都是利用两个加数,和上一次的进位,计算得到本次的加和,和下一次的进位,这也正是一次全加器的实现逻辑,如果把多个全加器串联起来,就可用同样的思想实现多位二进制的加法。
比如,将8个全加器串联在一起,连接方法是,前一个全加器的进位输出接入后一个全加器的进位输入。由于最低位没有进位,所以最低位的进位为0,当然也可以直接采用半加器;而最高位的进位不作处理,称为溢出。