为什么按位不是不按预期切换位?见下面的例子:Bit-wise NOT在Python中的含义
a = 5
print(bin(a))
b = ~a
print(bin(b))
这是输出:
0b101
-0b110
的问题是,为什么从左边第一位不反转?
考虑到Python文档说:
〜X返回x的补充 - 您可以通过切换各 1 0获得数量和每个0为1
编辑:你是说“〜”不是简单切换位的操作符,而是两个补码的操作符? 如果是这样,为什么从文档中引用的句子没有说明。 Pyhton文档中的上述句子并不意味着这对我来说。
这两个互补 –
注意'-'在-0b110'的'前。它无法向您展示一系列无穷大的'1's,它们向左延伸,因此它向您显示'bin(abs(b))',前面带有'-'符号。 – user2357112
序言 - https://wiki.python.org/moin/BitwiseOperators –