Python 中的整数到十六进制转换

Integer to Hexadecimal Conversion in Python

a = 1
print hex(a)

上面给出了输出:0x1

如何获得 0x01 的输出?

print "0x%02x"%a

x 作为格式意味着 "print as hex".
02 表示 "pad with zeroes to two characters".

尝试:

print "0x%02x" % a

有点毛毛,我来分解一下:

前两个字符“0x”是按字面打印的。 Python 只是逐字吐出。

% 告诉 python 接下来是格式化序列。 0 告诉格式化程序它应该用零填充任何前导 space 并且 2 告诉它至少使用两列来完成它。 x 是格式化序列的末尾,表示类型 - 十六进制。

如果你想打印“0x00001”,你可以使用“0x%05x”等

您可以使用 format :

>>> a = 1
>>> '{0:02x}'.format(a)
'01'
>>> '0x{0:02x}'.format(a)
'0x01'

您可以使用 format:

>>> "0x"+format(1, "02x")
'0x01'
>>> format(1, '#04x') 
'0x01'

这是 Python 3.6+ 的 f 字符串变体:

a = 1
print(f"{a:0>2x}")

字符串格式说明:

  • :: 格式说明符
  • 0:填充(用0
  • >: 右对齐字段
  • 2:宽度
  • x: hex 类型

来源:6.1.3.1 Format Specification Mini-Language