int('10000000000000000000000000000001',2) 不返回负值


>>>a='11111111111111111111111111110101'
>>>int(a,2)
4294967285

在上面的代码中,我认为第32个数字是MSB(最高有效位),如果MSB为1,
值表示为负。
但是为什么int()函数返回正数?

在Python中,这有点不同,它使用两个补语。我认为这个问题的答案是你在寻找什么,并回答"为什么?"您可以使用bin()-函数自己测试,该函数返回与数字等效的位。

a='11111111111111111111111111110101'
print(int(a,2))
#4294967285
# Postive Integer 
# Same as above
b='0b11111111111111111111111111110101'
print(int(b,2))
#4294967285
# Negative Integer
=c'-0b11111111111111111111111111110101'
print(int(c,2))
#-4294967285

相关内容

  • 没有找到相关文章

最新更新