我一直在研究这个有点明智的门。
a=0b01100001
b=0b01100010
bin((a ^ 0b11111111) & (b ^ 0b11111111))
>>>0b10011100
所以我想知道你如何调整它以适用于nand gate和该实例的任何其他工具。
>>> bin((a ~ 0b11111111)& (b ~ 0b11111111))
SyntaxError: invalid syntax
>>> bin((a ^ 0b11111111) ~ (b ^ 0b11111111))
SyntaxError: invalid syntax
不起作用。
答案 0 :(得分:2)
你应该从这里开始:https://wiki.python.org/moin/BitwiseOperators
x << y
x >> y
x & y
x | y
~ x
x ^ y
根据维基百科:
函数NAND(a1,a2,...,an)在逻辑上等同于NOT(a1 AND a2 AND ... AND an)。
因此,为了在Python中对操作数a
和b
进行逐位NAND操作:
~(a & b)
你可以把它放到一个函数中:
bnand = lambda a, b: ~(a & b)
相应的非按位NAND将是:
not (a and b)
因此请确保您不要混淆and
和&
(以及not
和~
);逻辑运算符也是小写的。
P.S。另外,请务必阅读:Python: unsigned 32 bit bitwise arithmetic