zoukankan      html  css  js  c++  java
  • 16进制与字符串的转换

    一、转16进制

    方法1:

    列表数据转16进制字符串

    import struct
    a=[0xAA,0x01,0x17,0x00,0x60,0x0A,0x00,0x0A,0x00,0xD0,0x11,0x02,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x1E]
    data_hex=struct.pack("%dB"%(len(a)),*a)
    print data_hex
    #'xaax01x17x00` x00 x00xd0x11x02x01x00x00x00x00x00x00x00x00x00x1e'

    用法:data_hex这种形式的数据可以当成16进制来发送(socket,serial等等)

     方法2:

    字符串转16进制字符串

    >>> from binascii import *
    >>> b2a_hex('aaaaaaa')
    '61616161616161'
    >>> b2a_hex('aaaaaaa').encode('utf-8')
    '61616161616161'

    用法:在socket中若收到的数据是16进制的含义的,但接收的时候是字符串形式,可以将其转成16进制字符串形式,易于显示

    方法3:

    字符串转成字面相等的16进制字符串

    >>> from binascii import *
    >>> a2b_hex('A1A1A1')
    'xa1xa1xa1'

    用法:同方法1一样

    列表在使用append的时候,若添加的数据无法识别成字符串,则以16进制字符串保存起来

    socket server
    data:open ['open']
    tohex:6f70656e ['6f70656e']
    data:open ['open', 'open']
    tohex:6f70656e ['6f70656e', '6f70656e']
    data:open', 'open', 'xaaxaaxaaxaaxaa']
    tohex:aaaaaaaaaa ['6f70656e', '6f70656e', 'aaaaaaaaaa']

    此时的列表里的16进制也可当成16进制发送出去,同方法1

  • 相关阅读:
    poj2492A Bug's Life
    poj2912Rochambeau
    poj1062昂贵的聘礼
    poj3169Layout(差分约束)
    poj2240Arbitrage
    poj1502MPI Maelstrom
    poj3259Wormholes
    1/8=1/a+1/b,a,b为自然数
    目录查找
    待删除未删除 问题解决
  • 原文地址:https://www.cnblogs.com/dyzne/p/7153828.html
Copyright © 2011-2022 走看看