当多位数相加时,半加器可用于最低位求和,并给出进位数。第二位的相加有两个待加数(B和进位CO),还有一个来自前面低位送来的进位数 (A)。这三个数相加,得出本位和数(全加和数)和进位数。同样可以把它抽象出来:

这个黑盒子就是一个函数,输入两个加数,相加运算,输出和数。
如果要计算多位数的相加,则需要多个全加器以及其他门电路,组合出更复杂的加法器。减法的运算可以用加法来分解:
减法:10 - 5 = 10 (-5),须通过反码,补码等操作。
其他运算器也有相关的门电路来组成,有关知识这里不展开。
从加法器我们不难得出,CPU的运算是各种门电路的高低电平的输入和输出,高电平为1,低电平为0,把我们平常的十进制数字转成二进制数输入,输出二进制数。
寄存器
两个数字相加用全加器的组合来完成,如果是多个数字的相加呢?比如1 2 3 4 5 …… 100,该怎么完成呢?
按照我们的计算过程来看这个问题,我们先把前两个数拿出来相加,得到的和再和第三个数相加,依次累加到100,转换到单片机来完成,那就要把所有的相加数放到一个存储器中,以便在每次的相加中取出,还要把每次相加的和数保存起来用到下一次的相加,这就用到了寄存器了。
寄存器-1保存1-100的数字,寄存器-2保存每次的相加结果。计算1-100的相加,寄存器-2的初始值为0,依次取出寄存器-1的数字和寄存器-2的结果相加:
1 0=1,
2 1=3,
3 3=6,
4 6=10……
锁存器
但是寄存器是怎么帮我们保存数据的呢?这就要锁存器(Latch)来帮助了,两个或非门组成了一个最简单的锁存器。

简单的说,这个单元记住了之前S端的输入1,直到我们把R端设为1,输出端Q才变回0。
然后在这个简单锁存器加上控制端G和一个输入端D就变成了D锁存器:

它有两个输入端,分别是一个信号控制G,一个输入数据信号D,一个输出Q。它的功能就是在G有效的时候把D的值传给Q,也就是锁存的过程。
触发器
把两个D锁存器结合到一起就成了D触发器(DATA flip-flop)。触发器也叫双稳态门,又称双稳态触发器,是一种可以在两种状态下运行的数字逻辑电路。
触发器一直保持它们的状态,直到它们收到输入脉冲,又称为触发。常见的触发器包括:RS 触发器、D 触发器和 JK触发器等,其中D触发器最为常用。
