• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    Python实现byte转integer

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

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

    方法 1 导入struct包

    import struct
    struct.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 array
    integerValue = 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 = (i8)+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)
    

    以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

    您可能感兴趣的文章:
    • 解决python3 整数数组转bytes的效率问题
    • python中int与str互转方法
    • Python bytes string相互转换过程解析
    上一篇:Pytorch之如何dropout避免过拟合
    下一篇:pytorch fine-tune 预训练的模型操作
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    Python实现byte转integer Python,实现,byte,转,integer,