如何将二进制数据转换为整数?

2 投票
2 回答
6049 浏览
提问于 2025-04-16 00:03

当我使用 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 这个模块。

撰写回答