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

问题描述 投票:5回答:6
a = 1
print hex(a)

上面给了我输出:0x1

如何获取输出为0x01

python int hex
6个回答
12
投票

您可以使用format

format

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

2
投票

尝试:

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

有点毛,所以让我分解一下:

前两个字符“ 0x”实际上是打印出来的。 Python只是逐字逐出它们。

%告诉python后面是格式化序列。0告诉格式化程序,它应该用零填充任何前导空格,而2告诉格式化程序,至少要使用两列。 x是格式化序列的结尾,并指示类型-十六进制。

如果要打印“ 0x00001”,请使用“ 0x%05x”,依此类推。


2
投票
print "0x%02x" % a

print "0x%02x"%a 的格式表示“以十六进制打印”x表示“零到两个字符的填充板”


1
投票

您可以使用02

format

0
投票

这里是适用于Python 3.6+的f字符串变体:

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

字符串格式的说明:

  • a = 1 print(f"{a:0>2x}") :格式说明符
  • ::填充
  • [0:右对齐字段
  • [>:宽度
  • [2x类型

来源:hex

© www.soinside.com 2019 - 2024. All rights reserved.