zoukankan      html  css  js  c++  java
  • python数据类型转换

    python中的字符数字之间的转换函数

     
    int(x [,base ])         将x转换为一个整数    
    long(x [,base ])        将x转换为一个长整数    
    float(x )               将x转换到一个浮点数    
    complex(real [,imag ])  创建一个复数    
    str(x )                 将对象 x 转换为字符串    
    repr(x )                将对象 x 转换为表达式字符串    
    eval(str )              用来计算在字符串中的有效Python表达式,并返回一个对象    
    tuple(s )               将序列 s 转换为一个元组    
    list(s )                将序列 s 转换为一个列表    
    chr(x )                 将一个整数转换为一个字符    
    unichr(x )              将一个整数转换为Unicode字符    
    ord(x )                 将一个字符转换为它的整数值    
    hex(x )                 将一个整数转换为一个十六进制字符串    
    oct(x )                 将一个整数转换为一个八进制字符串   
     
     
    chr(65)='A'
    ord('A')=65
     
    int('2')=2;
    str(2)='2'
     
     
    进行协议解析时,总是会遇到各种各样的数据转换的问题,从二进制到十进制,从字节串到整数等等
    整数之间的进制转换:
    
    10进制转16进制: hex(16)  ==>  0x10
    16进制转10进制: int('0x10', 16)  ==>  16
    类似的还有oct(), bin()
     
     
    字符串转整数:
    10进制字符串: int('10')  ==>  10
    16进制字符串: int('10', 16)  ==>  16
    16进制字符串: int('0x10', 16)  ==>  16
     
     
    字节串转整数:
    转义为short型整数: struct.unpack('<hh', bytes(b'x01x00x00x00'))  ==>  (1, 0)
    转义为long型整数: struct.unpack('<L', bytes(b'x01x00x00x00'))  ==>  (1,)
     
     
    整数转字节串:
    转为两个字节: struct.pack('<HH', 1,2)  ==>  b'x01x00x02x00'
    转为四个字节: struct.pack('<LL', 1,2)  ==>  b'x01x00x00x00x02x00x00x00'
     
     
    字符串转字节串:
    字符串编码为字节码: '12abc'.encode('ascii')  ==>  b'12abc'
    数字或字符数组: bytes([1,2, ord('1'),ord('2')])  ==>  b'x01x0212'
    16进制字符串: bytes().fromhex('010210')  ==>  b'x01x02x10'
    16进制字符串: bytes(map(ord, 'x01x02x31x32'))  ==>  b'x01x0212'
    16进制数组: bytes([0x01,0x02,0x31,0x32])  ==>  b'x01x0212'
     
     
    字节串转字符串:
    字节码解码为字符串: bytes(b'x31x32x61x62').decode('ascii')  ==>  12ab
    字节串转16进制表示,夹带ascii: str(bytes(b'x01x0212'))[2:-1]  ==>  x01x0212
    字节串转16进制表示,固定两个字符表示: str(binascii.b2a_hex(b'x01x0212'))[2:-1]  ==>  01023132
    字节串转16进制数组: [hex(x) for x in bytes(b'x01x0212')]  ==>  ['0x1', '0x2', '0x31', '0x32']
     
    内存16进制转字符串
    
    offset = binascii.unhexlify(offset)

    内存中0x416b34 转为Ak4

  • 相关阅读:
    ActionForm补充
    ActionForward
    struts模式匹配
    ActionMapping
    struts1.x的国际化
    DispatchAction
    ActionForm作为类型转换
    struts自定义异常
    hibernate核心接口
    Visual C# 2008+SQL Server 2005 数据库与网络开发 9.5 小结
  • 原文地址:https://www.cnblogs.com/fply/p/8303265.html
Copyright © 2011-2022 走看看