如何在Python中解压32位int?

如何在Python中解压32位int?,python,struct,unpack,Python,Struct,Unpack,我对structs的理解很弱,但我觉得它们是最好的方法。我有一个大的二进制数据字符串,需要从一个特定的索引开始提取其中的32个字符,并将它们存储为int。最好的方法是什么 由于需要从初始位置开始,我一直在使用struct.unpack\u from()。基于format表,我认为4字节的“I”格式正是我所需要的,但下面的代码执行并打印“(825307441),”,我希望是二进制、十进制或十六进制形式。谁能给我解释一下825307441代表什么 还有没有一种方法可以以类似的方式提取数据,但以列表而

我对structs的理解很弱,但我觉得它们是最好的方法。我有一个大的二进制数据字符串,需要从一个特定的索引开始提取其中的32个字符,并将它们存储为int。最好的方法是什么

由于需要从初始位置开始,我一直在使用
struct.unpack\u from()
。基于format表,我认为4字节的“I”格式正是我所需要的,但下面的代码执行并打印“(825307441),”,我希望是二进制、十进制或十六进制形式。谁能给我解释一下825307441代表什么

还有没有一种方法可以以类似的方式提取数据,但以列表而不是元组的形式返回数据?多谢各位

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

只需使用
int

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

您可以按任何方式分割字符串,以获得所需的索引。将
2
传递到
int
会告诉
int
您正在传递一个二进制字符串

只需使用
int

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

您可以按任何方式分割字符串,以获得所需的索引。将
2
传递到
int
会告诉
int
您正在传递一个二进制字符串

您说您有一个大的二进制数据字符串。你确定那是一个由1和0组成的字符串,还是像
'\x25\x90\x14\x0d'
这样的意思?你说你有一个大的二进制数据字符串。你确定那是一串1和0,还是像
“\x25\x90\x14\x0d”
?上面说我可以在6分钟内接受你的答案,但我现在要离开工作了,期待明天早上。佩利说我可以在6分钟内接受你的答案,但我现在要离开工作了,期待明天早上