~在Python中使用的问题在于,它可以与带符号整数一起使用。除非您将自己限制为特定数量的位数,否则这也是真正有意义的唯一方法。它 会
工作正常按位数学,但它可以使难以解释的中间结果。
对于4位逻辑,您应该减去
0b1111
0b1111 - 0b1100 # == 0b0011
对于8位逻辑,请减去
0b11111111等。
一般形式是
def bit_not(n, numbits=8): return (1 << numbits) - 1 - n

~在Python中使用的问题在于,它可以与带符号整数一起使用。除非您将自己限制为特定数量的位数,否则这也是真正有意义的唯一方法。它 会
对于4位逻辑,您应该减去
0b1111
0b1111 - 0b1100 # == 0b0011
对于8位逻辑,请减去
0b11111111等。
一般形式是
def bit_not(n, numbits=8): return (1 << numbits) - 1 - n