【发布时间】:2014-12-25 19:48:14
【问题描述】:
下面的a和b(十六进制),代表二进制补码符号。 例如:
a = 0x17c7cc6e
b = 0xc158a854
现在我想知道以 10 为底的 a 和 b 的符号表示。 抱歉,我是一个低级程序员,并且是 python 新手;问这个感觉很愚蠢。我不关心额外的图书馆,但答案应该简单明了。背景:a & b 是从 UDP 数据包中提取的数据。我无法控制格式。所以请不要给我一个假设我可以事先更改这些变量格式的答案。
我已将 a & b 转换为以下内容:
aBinary = bin(int(a, 16))[2:].zfill(32) => 00010111110001111100110001101110 => 398969966
bBinary = bin(int(b, 16))[2:].zfill(32) => 11000001010110001010100001010100 => -1051154348
我试图做这样的事情(不起作用):
if aBinary[1:2] == 1:
aBinary = ~aBinary + int(1, 2)
在 python 中执行此操作的正确方法是什么?
【问题讨论】:
标签: python python-2.7 binary hex