这是一个探索布尔逻辑的好机会。在
像这样的二进制加法器可以用两个“半加法器”和一个“或”来完成
首先是“半加器”,它是一个异或,给你一个求和输出,一个给你一个进位。在
[按注释编辑:python确实有一个实现为^的异或,但不是像andnotor这样的“单词”。我把答案保留原样,因为它解释了二进制加法背后的布尔逻辑]
由于python没有XOR,所以我们必须编写一个。
XOR本身是两个AND(具有反向输入)和一个OR,如下所示:
结果是一个简单的函数,如下所示:def xor(bit_a, bit_b):
A1 = bit_a and (not bit_b)
A2 = (not bit_a) and bit_b
return int(A1 or A2)
其他人可能希望这样写:
^{pr2}$
这是非常有效的,但是我使用的是布尔型的例子。在
然后我们对“半加器”进行编码,它有2个输入(位_a,bit_b),并给出两个输出