3 回答

TA貢獻(xiàn)1798條經(jīng)驗(yàn) 獲得超7個贊
您可以使用struct模塊:
import struct
print struct.pack('>I', your_int)
'>I'是格式字符串。>表示大尾數(shù),I表示unsigned int。檢查文檔以獲取更多格式字符。

TA貢獻(xiàn)2041條經(jīng)驗(yàn) 獲得超4個贊
最好的方法可能是通過內(nèi)置的struct模塊:
>>> import struct
>>> x = 1245427
>>> struct.pack('>BH', x >> 16, x & 0xFFFF)
'\x13\x00\xf3'
>>> struct.pack('>L', x)[1:] # could do it this way too
'\x13\x00\xf3'
或者-我通常不建議這樣做,因?yàn)樗菀壮鲥e-您可以通過移位和chr()函數(shù)“手動”完成此操作:
>>> x = 1245427
>>> chr((x >> 16) & 0xFF) + chr((x >> 8) & 0xFF) + chr(x & 0xFF)
'\x13\x00\xf3'
出于好奇,為什么只需要三個字節(jié)?通常,您會將這樣的整數(shù)打包成完整的32位(A C unsigned long),然后使用struct.pack('>L', 1245427)但跳過該[1:]步驟?
添加回答
舉報