首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在Python中打印十六进制变量

在Python中打印十六进制变量
EN

Stack Overflow用户
提问于 2013-05-16 02:04:08
回答 5查看 148.8K关注 0票数 20

我正在找一种打印十六进制字符串的方法。例如,我有一个字符串,然后我将其转换为十六进制值。

代码语言:javascript
复制
my_string = "deadbeef"
my_hex = my_string.decode('hex')

如何以0xde 0xad 0xbe 0xef格式打印my_hex

为了把我的问题弄清楚。假设我在一个变量中存储了一些数据,比如0x01, 0x02, 0x03, 0x04。现在我需要把它打印成十六进制,这样我就可以阅读它了。我想我正在寻找一个与printf("%02x", my_hex)相当的Python。我知道有print '{0:x}'.format(),但它不能在my_hex上工作,也不能用零填充。

EN

回答 5

Stack Overflow用户

发布于 2013-05-16 02:09:40

将字符串转换为以16为基数的整数,然后转换为十六进制。

代码语言:javascript
复制
print hex(int(string, base=16))

这些都是内置函数。

http://docs.python.org/2/library/functions.html#int

示例

代码语言:javascript
复制
>>> string = 'AA'
>>> _int = int(string, base=16)
>>> _hex = hex(_int)
>>> print _int
170
>>> print _hex
0xaa
>>> 
票数 8
EN

Stack Overflow用户

发布于 2017-05-28 23:45:59

后面的打印/格式样式的另一个答案是:

代码语言:javascript
复制
res[0]=12
res[1]=23
print("my num is 0x{0:02x}{1:02x}".format(res[0],res[1]))
票数 7
EN

Stack Overflow用户

发布于 2013-05-16 02:06:04

使用

代码语言:javascript
复制
print " ".join("0x%s"%my_string[i:i+2] for i in range(0, len(my_string), 2))

如下所示:

代码语言:javascript
复制
>>> my_string = "deadbeef"
>>> print " ".join("0x%s"%my_string[i:i+2] for i in range(0, len(my_string), 2))
0xde 0xad 0xbe 0xef
>>>

在不相关的旁注中..。使用string作为变量名,即使作为示例变量名也是非常糟糕的做法。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16572008

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档