如何使用以下格式将十进制转换为十六进制(至少两位数,零填充,不带0x前缀)?
输入:255
输出:ff
输入:2
输出:02
我试过了hex(int)[2:]
,但它似乎显示了第一个例子而不是第二个例子。
答案 0 :(得分:136)
使用'02x'
格式的format()
function。
>>> format(255, '02x')
'ff'
>>> format(2, '02x')
'02'
02
部分告诉format()
使用至少2位数并使用零填充长度,x
表示小写十六进制。
Format Specification Mini Language还为X
提供了大写十六进制输出,您可以在字段宽度前加#
前缀,以包含0x
或0X
前缀(取决于您使用x
或X
作为格式化程序)。只需考虑您需要调整字段宽度以允许额外的2个字符:
>>> format(255, '02X')
'FF'
>>> format(255, '#04x')
'0xff'
>>> format(255, '#04X')
'0XFF'
答案 1 :(得分:22)
我认为这就是你想要的:
>>> def twoDigitHex( number ):
... return '%02x' % number
...
>>> twoDigitHex( 2 )
'02'
>>> twoDigitHex( 255 )
'ff'
答案 2 :(得分:-7)
另一种解决方案是:
>>> "".join(list(hex(255))[2:])
'ff'
可能是一个古老的答案,但功能齐全。