有没有比int更好的方法(byte_buffer.encode('hex'),16)

时间:2009-05-28 01:16:47

标签: python integer types byte

在Python中,我经常使用以下序列从字节缓冲区中获取整数值(在python中这是一个str)。

我从struct.unpack()例程中获取缓冲区。当我使用

解压缩'char'时
byte_buffer, = struct.unpack('c', raw_buffer)
int_value = int( byte_buffer.encode('hex'), 16 )

有更好的方法吗?

3 个答案:

答案 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)

无法理解为什么还没有建议。