以下是a和b(十六进制),表示的是二进制补码有符号数字。例如:
a = 0x17c7cc6e
b = 0xc158a854
现在我想知道十进制下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中,如何正确地完成这项任务?