我正在找一种打印十六进制字符串的方法。例如,我有一个字符串,然后我将其转换为十六进制值。
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
上工作,也不能用零填充。
发布于 2013-05-16 02:09:40
将字符串转换为以16为基数的整数,然后转换为十六进制。
print hex(int(string, base=16))
这些都是内置函数。
http://docs.python.org/2/library/functions.html#int
示例
>>> string = 'AA'
>>> _int = int(string, base=16)
>>> _hex = hex(_int)
>>> print _int
170
>>> print _hex
0xaa
>>>
发布于 2017-05-28 23:45:59
后面的打印/格式样式的另一个答案是:
res[0]=12
res[1]=23
print("my num is 0x{0:02x}{1:02x}".format(res[0],res[1]))
发布于 2013-05-16 02:06:04
使用
print " ".join("0x%s"%my_string[i:i+2] for i in range(0, len(my_string), 2))
如下所示:
>>> 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
作为变量名,即使作为示例变量名也是非常糟糕的做法。
https://stackoverflow.com/questions/16572008
复制相似问题