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