一位全加器(Full Adder)
对于一位二进制加法而言:
0 + 0 = 0
0 + 1 = 1
1 + 0 = 1
1 + 1 = 0
我们可以联想到异或运算:
S
=
X
⨁
Y
S = X \bigoplus Y
S=X⨁Y
这样,我们就从算术运算转化为逻辑运算,这样通过异或门实现一位加法的电路叫做半加器(Half Adder)。
但是,半加器只能实现和数的运算,对于 1 + 1 = 10的进位运算,我们需要用到全加器(Full Adder)。
X(i) | Y(i) | C1(i) | 和数S(i) | C(i+1) |
---|---|---|---|---|
0 | 0 | 0 | 0 | 0 |
0 | 0 | 1 | 1 | 0 |
0 | 1 | 0 | 1 | 0 |
0 | 1 | 1 | 0 | 1 |
1 | 0 | 0 | 1 | 0 |
1 | 0 | 1 | 0 | 1 |
1 | 1 | 0 | 0 | 1 |
1 | 1 | 1 | 1 | 1 |
由上表我们可以得到:
S
=
X
i
⨁
Y
i
⨁
C
i
S = X_i \bigoplus Y_i \bigoplus C_i
S=Xi⨁Yi⨁Ci
C i + 1 = X i Y i + C i ( X i ⨁ Y i ) C_{i+1} = X_iY_i + C_i(X_i \bigoplus Y_i) Ci+1=XiYi+Ci(Xi⨁Yi)
我们可以表示成:
内部电路如图所示:
对于n位加法器而言,是由n个一位全加器串联得到的:
低位进位的Ci+1连接到高位Ci。