Python 官方文档:入门教程 => 点击学习
摘自convert a string of bytes into an int (python) - Stack Overflow 需求:将形如'y\xcc\xa6\xbb'的byte字符串转化为integer 方法
摘自convert a string of bytes into an int (python) - Stack Overflow
需求:将形如'y\xcc\xa6\xbb'的byte字符串转化为integer
import struct
struct.unpack("<L", "y\xcc\xa6\xbb")[0]
若byte串采取大端法:
int.from_bytes(b'y\xcc\xa6\xbb', byteorder='big')
若采取小端法,则:
int.from_bytes(b'y\xcc\xa6\xbb', byteorder='little')
大端法:
s = 'y\xcc\xa6\xbb'
num = int(s.encode('hex'), 16)
小端法:
int(''.join(reversed(s)).encode('hex'), 16)
import array
integerValue = array.array("I", 'y\xcc\xa6\xbb')[0]
其中I用于表示大端或小端,且使用此方法要注意自己使用的Python版本。
如:
sum(ord(c) << (i * 8) for i, c in enumerate('y\xcc\xa6\xbb'[::-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编辑器好难用,写到页面底端就换行错乱,跳字符。
data_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)
以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。
--结束END--
本文标题: Python实现byte转integer
本文链接: https://lsjlt.com/news/10839.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
2024-03-01
2024-03-01
2024-03-01
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0