2013-07-31 28 views
1

另一種方式是簡單int(byte_buffer.encode('hex'), 16)如何收拾字節緩存任意大小的整數Python中

但我怎麼轉換該整數回byte_buffer

長度將通過將struct.pack('>I', len(byte_buffer))加上該值來存儲。

2.7中有int.bit_length()這將是一個好的開始,但不幸的是我必須能夠在2.6上運行這個。

+0

這解決了我自己,但不知道我的解決方案是如何最優的。 – Kimvais

回答

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) 
+0

在這裏你有問題,出來的東西的長度可能會有所不同。所以也許你想解決這個問題。此外,'struct.pack('B',x)'與'chr(x)'相同...... – glglgl

相關問題