第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

將Python int轉(zhuǎn)換為大端字節(jié)串

將Python int轉(zhuǎn)換為大端字節(jié)串

森林海 2019-11-29 11:10:03
我有一個非負(fù)整數(shù),我想將其有效地轉(zhuǎn)換為包含相同數(shù)據(jù)的大端字符串。例如,int 1245427(即0x1300F3)應(yīng)導(dǎo)致長度為3的字符串,其中包含三個字符,其字節(jié)值為0x13、0x00和0xf3。我的整數(shù)是35(以10為底)數(shù)字的小數(shù)位數(shù)。我該怎么做呢?
查看完整描述

3 回答

?
元芳怎么了

TA貢獻(xiàn)1798條經(jīng)驗(yàn) 獲得超7個贊

您可以使用struct模塊:


import struct

print struct.pack('>I', your_int)

'>I'是格式字符串。>表示大尾數(shù),I表示unsigned int。檢查文檔以獲取更多格式字符。


查看完整回答
反對 回復(fù) 2019-11-29
?
縹緲止盈

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:]步驟?


查看完整回答
反對 回復(fù) 2019-11-29
  • 3 回答
  • 0 關(guān)注
  • 1254 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號