我们这里的加法器只考虑一位的情况。
当我们两个一位相加的话,那么就有两个输入,两个输出,两个输入很好理解,就是两个个位上的数字,0或者是1,那么为什么需要有有个输出呢?难道不是输出一个数就好了吗?因为如果两个数字都是1的话,那么就要考虑到进位的情况,所以这个时候就有了两个输出,一个是S,一个是C_out,其中的C_out就是表示输出的进位。那么这样的话就构成了一位的半加器。如下图:
这个就是一位的半加法器。那怎么写出这种情况来的呢?其实就是将所有的A,B的输入情况全部枚举出来,然后写出对应的所有的S和C的情况,根据A,B和S的关系,然后推断出其中要使用那种逻辑电路才能写出来,总之大部分的关系都是可以通过一个逻辑符号表示出来的,如果一个不可以的话,那就写两个,或者是更多。
那为什么要引入全加法器呢?半加法器实现不了吗?原来半加法器只能实现个位的加减法,而十位,百位这些在中间的为主,如果低位有进位的话,那么就还需要一个出入的变量进行想加,所以得加入低位的进位C_in进行想加。那么这个时候有了三个输入的想加的变量,而一个半加法器只能同时进行两个数字的计算,这样的话就需要两个半加器进行计算就好了。我们可以将两个半加器的想加当做是两个阶段进行计算,第一个半加器的相加是旧相加&