~
运算符让我有些困惑。代码如下:
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/