如何在Python中执行按位非运算?

为了测试使用更基本的构建块(在我的情况下使用Nand,Or和And)构建Xor操作,我需要能够执行Not操作。内置not似乎只用一位完成此操作。如果我做:

x = 0b1100

x = not x

我应该得到,0b0011但是我只是得到0b0。我究竟做错了什么?还是Python只是缺少此基本功能?

我知道Python具有内置的Xor函数,但我一直在使用Python来测试需要构建Xor门的HDL项目/课程的内容。我想在Python中进行测试,但是我不能没有一个Not门。

回答:

~在Python中使用的问题在于,它可以与带符号整数一起使用。除非您将自己限制为特定数量的位数,否则这也是真正有意义的唯一方法。它

工作正常按位数学,但它可以使难以解释的中间结果。

对于4位逻辑,您应该减去 0b1111

0b1111 - 0b1100  # == 0b0011

对于8位逻辑,请减去0b11111111等。

一般形式是

def bit_not(n, numbits=8):

return (1 << numbits) - 1 - n

以上是 如何在Python中执行按位非运算? 的全部内容, 来源链接: utcz.com/qa/407845.html

回到顶部