我有String就像:
\x00\x00\x01\x90\x27
等等。
如何将此值解析为简单的long值?
比如,\x00
的长值是多少? 0
或00
?
答案 0 :(得分:0)
我假设你的数据是字符......
所以使用python 3
a=b'\x00\x00\x01\x90'
b=b.decode('utf-8')
如果你的二进制数据有一些'讨厌的'即坏字符,这将失败 - 但添加一个选项,如errors ='ignore'或errors ='replace'将帮助你解决这些问题。
答案 1 :(得分:0)
你的问题不是很清楚所以我在这里做了一些假设。如果您需要固定长度转换,则可以使用标准structs模块。
例如:
In [11]: unpack('>i', '\x00\x01\x90\x27')
Out[11]: (102439,)
如果你需要可变长度的字符串,那么像这样的东西将起作用(对于unsigned并观察endianness):
s = '\x00\x00\x01\x90\x27'
i = 0
for c in s:
i <<= 8
i |= ord(c)
print i