python进制转换Bug

>>> a = '0xfffe7b89'
>>> int(a,16)
4294867849

python3 int 会自动扩充到64位,把事实上的负数转换为正了

不知道怎么才能正确转换过来

阅读 3.1k
1 个回答

我觉得,你没有搞明白,什么叫“数”,什么叫“字节”吧。
0xfffe7b89 这个数,就是 4294867849 ,负的是 -0xfffe7b89
事实上,它就不是负数,只是你自己“觉得”它是负数。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题