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