Python实现byte转integer
摘自convert a string of bytes into an int (python) - Stack Overflow
需求:将形如’yxccxa6xbb’的byte字符串转化为integer
方法 1 导入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 借助十六进制转换
大端法:
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 自己写函数实现如:
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 转byte,byte转intdata_byte1 = int(1324).to_bytes(length=2, byteorder=’big’, signed=True)#int(参数):参数代表要被转换的数字#length=2:代表要转换成几个字节#byteorder=’big’代表高位在前,相反little
data_byte2 = int().from_bytes(data_byte1, byteorder=’big’, signed=True)print(data_byte1) print(data_byte2)
以上为个人经验,希望能给大家一个参考,也希望大家多多支持好吧啦网。
相关文章:
1. 如何基于python3和Vue实现AES数据加密2. python matplotlib工具栏源码探析二之添加、删除内置工具项的案例3. Python unittest生成测试报告过程解析4. CSS Hack大全-教你如何区分出IE6-IE10、FireFox、Chrome、Opera5. Vue+express+Socket实现聊天功能6. 解决VUE项目使用Element-ui 下拉组件的验证失效问题7. 数组在java中的扩容的实例方法8. CSS3实例分享之多重背景的实现(Multiple backgrounds)9. uni-app结合PHP实现单用户登陆demo及解析10. .NET中的MassTransit分布式应用框架详解

网公网安备