在Python中,我经常使用以下序列从字节缓冲区中获取整数值(在python中这是一个str)。
我从struct.unpack()例程中获取缓冲区。当我使用
解压缩'char'时byte_buffer, = struct.unpack('c', raw_buffer)
int_value = int( byte_buffer.encode('hex'), 16 )
有更好的方法吗?
答案 0 :(得分:6)
struct模块擅长解包二进制数据。
int_value = struct.unpack('>I', byte_buffer)[0]
答案 1 :(得分:2)
限制为1个字节 - Noah Campbell 18分钟前
然后,最好的方法是实例化一个struct unpacker。
from struct import Struct
unpacker = Struct("b")
unpacker.unpack("z")[0]
请注意,如果需要无符号字节,可以将“b”更改为“B”。此外,不需要字节序格式。
对于任何想要了解无限整数方法的人,请创建一个问题,然后在评论中告诉我。
答案 2 :(得分:1)
如果我们正在谈论获取一个字节的整数值,那么你想要这个:
ord(byte_buffer)
无法理解为什么还没有建议。