如何在Python中将任意大小的整数打包到字节缓冲区

时间:2013-07-31 12:13:52

标签: python binary-data

另一种方式很简单int(byte_buffer.encode('hex'), 16 )

但是如何将该整数转换回byte_buffer

通过在struct.pack('>I', len(byte_buffer))前加上值来存储长度。

在2.7中有int.bit_length()这是一个好的开始,但不幸的是我必须能够在2.6上运行它。

1 个答案:

答案 0 :(得分:1)

这就是我想出来的。

def int2str(i):
    _bytes = list()
    while i > 0:
        n = i % 256
        _bytes.insert(0, n)
        i = i >> 8
    return ''.join(struct.pack('B', x) for x in _bytes)