Python十六进制
如何把十进制数转换成十六进制格式(至少两位数字,不足的用零填充,且不带0x前缀)?
输入:255
输出:ff
输入:2
输出:02
我试过用hex(int)[2:]
,但好像只显示了第一个例子,而第二个没有。
3 个回答
-8
另一种解决方案是:
>>> "".join(list(hex(255))[2:])
'ff'
这可能是个老旧的答案,但还是能用。
26
我觉得这就是你想要的:
>>> def twoDigitHex( number ):
... return '%02x' % number
...
>>> twoDigitHex( 2 )
'02'
>>> twoDigitHex( 255 )
'ff'
162
使用 format()
函数,并且用 '02x'
这种格式。
>>> format(255, '02x')
'ff'
>>> format(2, '02x')
'02'
这里的 02
意思是告诉 format()
至少要用2位数字,如果不够就用0来填充,而 x
则表示要输出小写的十六进制数。
还有一个叫 格式规范迷你语言 的东西,它提供了 X
用于输出大写的十六进制数。如果你想在数字前面加上 0x
或 0X
的前缀(这取决于你用的是 x
还是 X
),可以在字段宽度前加上 #
。不过要记得,这样的话你需要调整字段宽度,以便留出这两个额外的字符:
>>> format(255, '02X')
'FF'
>>> format(255, '#04x')
'0xff'
>>> format(255, '#04X')
'0XFF'