半加器
一个与门一个异或门
通过一个异或门计算出个位,通过一个与门计算出是否进位
与门
A | B | AB |
---|---|---|
0 | 0 | 0 |
0 | 1 | 0 |
1 | 0 | 0 |
1 | 1 | 1 |
异或门
A | B | AB |
---|---|---|
0 | 0 | 0 |
0 | 1 | 1 |
1 | 0 | 1 |
1 | 1 | 0 |
前面是与门,同1进1,计算的是是否进位。
后面是异或门,同0异1,计算的是个位数上的值。
这样就组成了简单得二进制数的加法
这样更直观吧
电路图演示是这样的
全加器
两个半加器和一个或门
现假如还是刚才的例子,只不过二进制头上多了个进位
于是乎
我们先来看个位数上的值
有了进位信号,原来的个位数上的值和进位信号进行异或操作便可更新个位数上的值
我们在来定义下,从右往左数,第二列不是十位,就称之为“二位”
二位的值怎么算呢
- 先不看进位信号,如果加数和被加数都是1,那么半加器进行与操作二位结果自然是1 (图4)
- 之前的进位结果不是1,但是进位信号与原来个位数进行与操作()也可以得到1(图2、图3)
因为一共只有三个bit相加,即使3个bit都是1,也最多会进一位。
它们进行或操作就可以得到总的进位信号的值
就这4中可能性,全列出来吧
全加器的进位信号会进入到下一个加法器
这样既可以进行很复杂的二进制加法操作了
来源:CSDN
作者:小啊菜啊
链接:https://blog.csdn.net/qq_30763385/article/details/104731075