如何将二进制数据转换为整数?
当我使用 wave_read.readframes()
这个方法时,得到的结果是一些二进制数据,比如 /x00/x00/x00:/x16#/x05"
这样的很长的字符串。
如果我请求单个帧的数据,它会给我 @/x00
或者 \xe3\xff
这样的结果。
我想把这些单独的帧数据转换成整数,这样我就可以把它们存储到数组里。怎么做呢?
2 个回答
1
如果你想把每个字节放到自己的整数里,那我建议你使用map:
b = '\xde\xad\xbe\xef'
d = map(ord, b)
print d
[222, 173, 190, 239]
不过,如果你想在一个整数里放多个字节(比如字、双字等),那么使用reduce会更合适(这里是大端字节序的例子):
reduce(lambda x, r: (x << 8) + r, d[1:3])
44478
1
你需要使用 struct 这个模块。