加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

Python实现将16进制字符串转化为ascii字符的方法分析

发布时间:2020-12-17 08:14:22 所属栏目:Python 来源:网络整理
导读:本篇章节讲解Python实现将16进制字符串转化为ascii字符的方法。供大家参考研究具体如下: 字符串456e633064316e675f31735f66336e,通过Python,按照两个字符,例如45,6e,63形式变成ascii码格式,输出acsii码格式的字符串。 代码如下: a = "456e63

本篇章节讲解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,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','67','5f','73','66','33','6e']

2、

[chr(int(b,2)]]

这个外层的for循环就是把内存的for循环结果 :

['45','6e']

再次遍历一遍,就是每次从这个列表里取出一个元素,这里就是b,然后对b进行转化,这里int(b,16)表示 b是一个16进制的数字,把这个数字转化为int整型,然后chr函数把这个整数转化为字符,也就是ascii字符。

结果为:

['E','n','c','0','d','1','g','_','s','f','3','n']

3、

''.join([chr(int(b,2)]])

就是用‘'空串,把后面的 ['E','n'] 列表中的每个元素,join串联在一起。

最后的结果就是:Enc0d1ng_1s_f3n

4、另一种写法

a = "456e633064316e675f31735f66336e"
al = []
for i in range(0,2):
  b = a[i:i+2]
  al.append(chr(int(b,16)))
print ''.join(al)

PS:这里再为大家推荐几款相关工具供大家参考使用:

ASCII码对照表:
http://tools.aspzz.cn/table/ascii

Native/ASCII在线编码转换工具:
http://tools.aspzz.cn/transcoding/native2ascii

在线中文汉字/ASCII码/Unicode编码互相转换工具:
http://tools.aspzz.cn/transcoding/chinese2unicode

在线任意进制转换工具:
http://tools.aspzz.cn/transcoding/hexconvert

在线RGB颜色值与十六进制颜色码转换工具:
http://tools.aspzz.cn/color/rgb_hex_color

更多关于Python相关内容感兴趣的读者可查看本站专题:《Python字符串操作技巧汇总》、《Python编码操作技巧总结》、《Python数据结构与算法教程》、《Python函数使用技巧总结》及《Python入门与进阶经典教程》。

希望本文所述对大家Python程序设计有所帮助。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读