~运算符让我有些困惑。代码如下:

a = 1
~a  #-2
b = 15
~b  #-16


~如何工作?

我以为~a就像这样:

0001 = a
1110 = ~a


为什么不?

最佳答案

你说的没错。这是two's complement整数表示形式的产物。

在16位中,1表示为0000 0000 0000 0001。取反,得到1111 1111 1111 1110,即-2。同样,15是0000 0000 0000 1111。取反,得到1111 1111 1111 0000,即-16。

通常,~n = -n - 1

关于python - 按位运算一元〜(取反),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/56094532/

10-11 19:28