在线咨询
eetop公众号 创芯大讲堂 创芯人才网
切换到宽版

EETOP 创芯网论坛 (原名:电子顶级开发网)

手机号码,快捷登录

手机号码,快捷登录

找回密码

  登录   注册  

快捷导航
搜帖子
查看: 1541|回复: 0

[转贴] bytes和hex字符串之间的相互转换

[复制链接]
发表于 2018-12-17 22:09:37 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

x
【Python】bytes和hex字符串之间的相互转换。
[size=13.3333px]

反复在几个环境上折腾码流的拼装解析和可读化打印,总是遇到hex字符串和bytes之间的转换,记录在这里吧。

1. 在Python2.7.x上(更老的环境真心折腾不起),hex字符串和bytes之间的转换是这样的:

[url=]

                               
登录/注册后可看大图
[/url]
1 >>> a = 'aabbccddeeff'2 >>> a_bytes = a.decode('hex')3 >>> print(a_bytes)4 b'\xaa\xbb\xcc\xdd\xee\xff'5 >>> aa = a_bytes.encode('hex')6 >>> print(aa)7 aabbccddeeff8 >>>[url=]

                               
登录/注册后可看大图
[/url]

2. 在python 3环境上,因为string和bytes的实现发生了重大的变化,这个转换也不能再用encode/decode完成了。

2.1 在python3.5之前,这个转换的其中一种方式是这样的:

[url=]

                               
登录/注册后可看大图
[/url]
1 >>> a = 'aabbccddeeff'2 >>> a_bytes = bytes.fromhex(a)3 >>> print(a_bytes)4 b'\xaa\xbb\xcc\xdd\xee\xff'5 >>> aa = ''.join(['%02x' % b for b in a_bytes])6 >>> print(aa)7 aabbccddeeff8 >>>[url=]

                               
登录/注册后可看大图
[/url]

2.2 到了python 3.5之后,就可以像下面这么干了:

[url=]

                               
登录/注册后可看大图
[/url]
1 >>> a = 'aabbccddeeff'2 >>> a_bytes = bytes.fromhex(a)3 >>> print(a_bytes)4 b'\xaa\xbb\xcc\xdd\xee\xff'5 >>> aa = a_bytes.hex()6 >>> print(aa)7 aabbccddeeff8 >>>[url=]

                               
登录/注册后可看大图
[/url]


您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐 上一条 /3 下一条

小黑屋| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-4-23 15:50 , Processed in 0.017088 second(s), 7 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
快速回复 返回顶部 返回列表