二进制算术运算:
两个二进制数进行加法运算的规则,和十进制数基本相同。唯一的区别在于二进制数是“逢二进一”,而十进制数是“逢十进一”。
我们可以把一位二进制数的加法结果全计算出来,如下:
0+0=0
0+1=1
1+0=1
1+1=10
整理成表格:
以上的表格可以重新写成带有前导零的形式,这样每个和就会变成一个二位二进制数,像这样,和数的左边的数叫做进位(carry);右边的数叫做和位(sum);表格如下:
如果把和数的进位与和位拆开,会发现进位跟与门的输出一致;和位跟异或门的输出一致;
我们可以将异或门跟与门连接在一起,实现一位二进制数加法电路。
这个加法电路只能计算一位二进制数,无法计算多位二进制数。所以叫做半加器(Half Adder),符号如下:
我们需要对半加器进行改进,使其能进行多位数计算。将两个半加器和一个或门做如下连接:
要理解它的工作原理,首先从最左边第一个半加器的输入A和输入B开始,其输出是一个和位及进位。这个和位必须与前一列的进位输入在第二个半加器里相加,然后第二个半加器的输出和位是最后的结果。两个半加器的进位输出又被输入到一个或门中。
你可能会觉得,这里还需要一个半加法器,这当然是可行的。但是如果你了解了所有的可能性之后,你会发现,两个半加法器的进位输出是不会同时为1的。或门在这里已经足够,因为或门除了在输入都为1的时候以外,其他情况下结果和异或门结果相同。
这个加法电路叫做全加器(Full Adder)符号如下:
P.S.进位输出(Carry Out 简写为CO)
进位输入(Carry In 简写CI)
---------------------------------------------------------------------