以下是在Python 2.7.2解释器上运行bin
内置函数的结果:
bin(5)
=> '0b101'
bin(-5)
=> '-0b101'
bin(5&-5)
=> '0b1'
使用无限位和2的补码:
+5 = 0000...0101
-5 = 1111...1101
那么为什么5&-5 = 0000...1
?
不应该是0000...101
吗?对此有何解释?
答案 0 :(得分:2)
你做错了你的两个补充。它实际上是:1111...1011
所以...1011 & ...0101
= 1。
答案 1 :(得分:2)
实际上2的-5的补码是111.....1011
现在,如果你有点明智和这两个
000...0101
& 111...1011
----------
000...0001