Python實(shí)現(xiàn)byte轉(zhuǎn)integer
摘自convert a string of bytes into an int (python) - Stack Overflow
需求:將形如’yxccxa6xbb’的byte字符串轉(zhuǎn)化為integer
方法 1 導(dǎo)入struct包import structstruct.unpack('<L', 'yxccxa6xbb')[0]方法 2 python3.2及以上
若byte串采取大端法:
int.from_bytes(b’yxccxa6xbb’, byteorder=’big’)
若采取小端法,則:
int.from_bytes(b’yxccxa6xbb’, byteorder=’little’)方法3 借助十六進(jìn)制轉(zhuǎn)換
大端法:
s = ’yxccxa6xbb’num = int(s.encode(’hex’), 16)
小端法:
int(’’.join(reversed(s)).encode(’hex’), 16)方法4 使用array包
import arrayintegerValue = array.array('I', ’yxccxa6xbb’)[0]
其中I用于表示大端或小端,且使用此方法要注意自己使用的python版本。
方法5 自己寫函數(shù)實(shí)現(xiàn)如:
sum(ord(c) << (i * 8) for i, c in enumerate(’yxccxa6xbb’[::-1]))
又如:
def bytes2int( tb, order=’big’): if order == ’big’: seq=[0,1,2,3] elif order == ’little’: seq=[3,2,1,0] i = 0 for j in seq: i = (i<<8)+tb[j] return i
ps: CSDN的markdown編輯器好難用,寫到頁面底端就換行錯亂,跳字符。
python int 轉(zhuǎn)byte,byte轉(zhuǎn)intdata_byte1 = int(1324).to_bytes(length=2, byteorder=’big’, signed=True)#int(參數(shù)):參數(shù)代表要被轉(zhuǎn)換的數(shù)字#length=2:代表要轉(zhuǎn)換成幾個字節(jié)#byteorder=’big’代表高位在前,相反little
data_byte2 = int().from_bytes(data_byte1, byteorder=’big’, signed=True)print(data_byte1) print(data_byte2)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持好吧啦網(wǎng)。
相關(guān)文章:
1. html中的form不提交(排除)某些input 原創(chuàng)2. ASP動態(tài)網(wǎng)頁制作技術(shù)經(jīng)驗分享3. ASP常用日期格式化函數(shù) FormatDate()4. CSS3實(shí)現(xiàn)動態(tài)翻牌效果 仿百度貼吧3D翻牌一次動畫特效5. asp.net core項目授權(quán)流程詳解6. XMLHTTP資料7. vue使用moment如何將時間戳轉(zhuǎn)為標(biāo)準(zhǔn)日期時間格式8. CSS3中Transition屬性詳解以及示例分享9. jsp文件下載功能實(shí)現(xiàn)代碼10. 開發(fā)效率翻倍的Web API使用技巧
