二进制的全加器
二进制的算法准则
在写全加器前,我们先了解二进制的算法准则。
我们设A和B是两个相加的二进制数,C是从下一位获得的进位,两书相加的和在该位的值为Sum,全加器的两个输出仍然是给上一位的进位Carry。
A–B--C | Sum–Carry |
---|---|
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 |
从上表得出,只要A、B、C中有任意两个输入的值是1,不管余下的一个输入值是多少,Carry一定会是1。即AB=1、AC=1、BC=1;即C=AB+AC+BC.
而Sum为1有四种情况,ABC、A(非B)(非C)、(非A)B(非C)、(非A)(非B)C。
那我们可以写出全加器的前一部分
def FA(a,b,c):
Carry = (a and b) or (b and c) or (a and c)#这两行代码就是上面我们总结出的逻辑式,不要看到太多就觉得自己看不懂