将int拆分为字节(无字符串)Python 2

将int拆分为字节(无字符串)Python 2,python,int,hex,Python,Int,Hex,基本上我想把一个int,比如说77121980,分成字节,或多或少有以下结构(0x04,0x98,0xc9,0xbc),没有字符串。或者至少(4152201188)。但到目前为止,我只在python 3中找到了类似hex()的方法,您可以使用: 如果需要这些值: >>> _bytes = (77121980).to_bytes(4, 'big') >>> tuple(_bytes) (4, 152, 201, 188) 如果您使用的是Python2,则可以使

基本上我想把一个int,比如说77121980,分成字节,或多或少有以下结构(0x04,0x98,0xc9,0xbc),没有字符串。或者至少(4152201188)。但到目前为止,我只在python 3中找到了类似hex()的方法,您可以使用:

如果需要这些值:

>>> _bytes = (77121980).to_bytes(4, 'big')
>>> tuple(_bytes)
(4, 152, 201, 188)
如果您使用的是Python2,则可以使用宽度有限的(请参阅打包):


您可以使用二进制
&
和位移位运算符

i = 77121980
b = []
while i > 0:
    b.append(i & 0xff)
    i >>= 8
b = b[::-1]

b           # [4, 152, 201, 188]
从原始数字开始,将最右边的字节追加到列表
b
,然后向右移位,直到没有更多的位可移位。由于我们是从右到左收集字节,因此结果列表的顺序是相反的,但是您可以使用切片或
反向
轻松地翻转它

>>> import struct
>>> struct.pack('>i', 77121980)
b'\x04\x98\xc9\xbc
i = 77121980
b = []
while i > 0:
    b.append(i & 0xff)
    i >>= 8
b = b[::-1]

b           # [4, 152, 201, 188]