时间:2021-05-22
本文实例讲述了Python实现将16进制字符串转化为ascii字符的方法。分享给大家供大家参考,具体如下:
字符串456e633064316e675f31735f66336e,通过Python,按照两个字符,例如45,6e,63形式变成ascii码格式,输出acsii码格式的字符串。
代码如下:
a = "456e633064316e675f31735f66336e"''.join([chr(int(b, 16)) for b in [a[i:i+2] for i in range(0, len(a), 2)]])拆分了代码,实际运行了一下,解释一下代码的意思:
1、
[a[i:i+2] for i in range(0, len(a), 2)]这段是lamda表达式,说白了,就是一个for循环,范围是从0开始到a字符串的长度,每次步进2,也就是第一次是0,第二次是2,第三次是4。。。
相应的 a[i:i+2],就是第一次从a里取出0:0+2 也就是0:2,那么实际上类似于数组,也就是取出a字符串的前面2个字符,注意这里0:2 实际上是不包含2的,只是0、1而已。
然后,外面的一层[ ]的意思就是把循环的返回结果放到一个 列表里,列表就是[]包含在内的,用逗号分隔的串。但是这样表达式可以起到简化代码的作用。
实际结果就是:
======================== C:\c - 副本 (2).py ========================['45', '6e', '63', '30', '64', '31', '6e', '67', '5f', '31', '73', '5f', '66', '33', '6e']2、
[chr(int(b, 16)) for b in [a[i:i+2] for i in range(0, len(a), 2)]]这个外层的for循环就是把内存的for循环结果 :
['45', '6e', '63', '30', '64', '31', '6e', '67', '5f', '31', '73', '5f', '66', '33', '6e']再次遍历一遍,就是每次从这个列表里取出一个元素,这里就是b,然后对b进行转化,这里int(b,16)表示 b是一个16进制的数字,把这个数字转化为int整型,然后chr函数把这个整数转化为字符,也就是ascii字符。
结果为:
['E', 'n', 'c', '0', 'd', '1', 'n', 'g', '_', '1', 's', '_', 'f', '3', 'n']3、
''.join([chr(int(b, 16)) for b in [a[i:i+2] for i in range(0, len(a), 2)]])就是用‘'空串,把后面的 ['E', 'n', 'c', '0', 'd', '1', 'n', 'g', '_', '1', 's', '_', 'f', '3', 'n'] 列表中的每个元素,join串联在一起。
最后的结果就是:Enc0d1ng_1s_f3n
4、另一种写法
a = "456e633064316e675f31735f66336e"al = []for i in range(0, len(a), 2): b = a[i:i+2] al.append(chr(int(b, 16)))print ''.join(al)PS:这里再为大家推荐几款相关工具供大家参考使用:
ASCII码对照表:
http://tools.jb51.net/table/ascii
Native/ASCII在线编码转换工具:
http://tools.jb51.net/transcoding/native2ascii
在线中文汉字/ASCII码/Unicode编码互相转换工具:
http://tools.jb51.net/transcoding/chinese2unicode
在线任意进制转换工具:
http://tools.jb51.net/transcoding/hexconvert
在线RGB颜色值与十六进制颜色码转换工具:
http://tools.jb51.net/color/rgb_hex_color
更多关于Python相关内容感兴趣的读者可查看本站专题:《Python字符串操作技巧汇总》、《Python编码操作技巧总结》、《Python数据结构与算法教程》、《Python函数使用技巧总结》及《Python入门与进阶经典教程》。
希望本文所述对大家Python程序设计有所帮助。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
JS字符串与二进制的相互转化的方法,具体代码如下所示://字符串转ascii码,用charCodeAt();//ascii码转字符串,用fromCharCode
复制代码代码如下://///////作用:将字符串内容转化为16进制数据编码,其逆过程是Decode///参数说明:///strEncode需要转化的原始字符串
1、由ASICC编码的字符串转换为十六进制byte数组2、将指定字节数组中的一个字节序列解码为一个字符串3、将二进制字符串转化为byte类型4、将SIM卡号转化
本文实例讲述了C#实现将32位MD5摘要串转换为128位二进制字符串的方法。分享给大家供大家参考,具体如下:将32为MD5摘要串转换为128位二进制字符串://
PHPbin2hex()函数实例把"HelloWorld!"转换为十六进制值:定义和用法bin2hex()函数把ASCII字符的字符串转换为十六进制值。字符串可