python 取反问题~(0xff) == -256???

为什么0xff取反是-256呢也就是0x100???

比如:

a = 0xff
print(~a, hex(~a))

>>>-256
>>>0x100

python存储是按补码。但按照道理,0xff逐位置取反不应该是0x0也就是0吗?

2个回答

也可以是0也可以是-256,看你怎么理解了。0和256,以及-1和255本质上是一回事。取决于你怎么理解最高位是不是符号位

没问题吧
0xff 换成0b011111111再取反,就变成:0b100000000,也就2**8 = 256,然后对正号也取反,就变成负号。

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问