如何在Python中执行按位非运算?
为了测试使用更基本的构建块(在我的情况下使用Nand,Or和And)构建Xor操作,我需要能够执行Not操作。内置not
似乎只用一位完成此操作。如果我做:
x = 0b1100x = 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