您当前的位置:首页 > IT编程 > python
| C语言 | Java | VB | VC | python | Android | TensorFlow | C++ | oracle | 学术与代码 | cnn卷积神经网络 | gnn | 图像修复 | Keras | 数据集 | Neo4j | 自然语言处理 | 深度学习 | 医学CAD | 医学影像 | 超参数 | pointnet | pytorch | 异常检测 | Transformers | 情感分类 | 知识图谱 |

自学教程:Python实现byte转integer

51自学网 2021-10-30 22:33:26
  python
这篇教程Python实现byte转integer写得很实用,希望能帮到您。

摘自convert a string of bytes into an int (python) - Stack Overflow

需求:将形如'y/xcc/xa6/xbb'的byte字符串转化为integer

方法 1 导入struct包

import structstruct.unpack("<L", "y/xcc/xa6/xbb")[0]

方法 2 python3.2及以上

若byte串采取大端法:

int.from_bytes(b'y/xcc/xa6/xbb', byteorder='big')

若采取小端法,则:

int.from_bytes(b'y/xcc/xa6/xbb', byteorder='little')

方法3 借助十六进制转换

大端法:

s = 'y/xcc/xa6/xbb'num = int(s.encode('hex'), 16)

小端法:

int(''.join(reversed(s)).encode('hex'), 16)

方法4 使用array包

import arrayintegerValue = array.array("I", 'y/xcc/xa6/xbb')[0]

其中I用于表示大端或小端,且使用此方法要注意自己使用的python版本。

方法5 自己写函数实现

如:

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编辑器好难用,写到页面底端就换行错乱,跳字符。

python int 转byte,byte转int

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)

以上为个人经验,希望能给大家一个参考,也希望大家多多支持51zixue.net。


Pytorch之如何dropout避免过拟合
pytorch fine-tune 预训练的模型操作
万事OK自学网:51自学网_软件自学网_CAD自学网自学excel、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。