你如何在Python中解压缩32位int?

时间:2014-07-16 20:11:41

标签: python struct unpack

我对结构相当弱,但我觉得他们是最好的方法。我有一大串二进制数据,需要从特定索引开始拉出其中32个字符,并将它们存储为int。这样做的最佳方式是什么?

因为我需要从初始位置开始,所以我一直在玩struct.unpack_from()。根据格式表here,我认为' i'格式化为4个字节正是我需要的,但下面的代码执行并打印"(825307441,)"我期待的是二进制,十进制或十六进制形式。谁能向我解释825307441代表什么?

还有一种方法以类似的方式提取数据但是将其返回列表而不是元组吗?谢谢

st = "1111111111111111111111111111111"
test = struct.unpack_from('i',st,0)
print test

1 个答案:

答案 0 :(得分:4)

只需使用int

即可
>>> st = "1111111111111111111111111111111"
>>> int(st,2)
2147483647
>>> int(st[1:4],2)
7

您可以以任何方式切割字符串以获得所需的索引。将2传递给int告诉int您传递的是二进制字符串