〜1和~0在python 3中给出了奇怪的结果

Kev*_*vin 0 python bit-manipulation bitwise-operators python-3.x

&,|,^和〜都是python中的按位运算符.&,^和| 对我来说都很好 - 当我拿1 | 0时,我得到1.但是〜给了我奇怪的结果.~1给我-2,而0给我-1.这是因为我使用的是整数还是其他什么?我正在运行python 3.

我希望从〜0得到1,从〜1得到0(整数).这可能吗?

Cor*_*mer 5

这里开始

~x

返回x的补码 - 通过将每个1切换为0并将每个0切换为1得到的数字.这与-x - 1相同.

在该声明的最后部分之后:

-1 - 1 确实是平等的 -2

-0 - 1 确实是平等的 -1