Python十六进制

时间:2013-02-03 22:33:30

标签: python hex

如何使用以下格式将十进制转换为十六进制(至少两位数,零填充,不带0x前缀)?

输入:255输出:ff

输入:2输出:02

我试过了hex(int)[2:],但它似乎显示了第一个例子而不是第二个例子。

3 个答案:

答案 0 :(得分:136)

使用'02x'格式的format() function

>>> format(255, '02x')
'ff'
>>> format(2, '02x')
'02'

02部分告诉format()使用至少2位数并使用零填充长度,x表示小写十六进制。

Format Specification Mini Language还为X提供了大写十六进制输出,您可以在字段宽度前加#前缀,以包含0x0X前缀(取决于您使用xX作为格式化程序)。只需考虑您需要调整字段宽度以允许额外的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'

可能是一个古老的答案,但功能齐全。