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