如何将十进制转换为以下格式的十六进制(至少两位,零填充,没有0x前缀)?
输入:255
输出:ff
输入:2
输出:02
我尝试过,hex(int)[2:]
但似乎它显示了第一个示例,但没有显示第二个示例。
Answers:
将format()
函数与'02x'
格式一起使用。
>>> format(255, '02x')
'ff'
>>> format(2, '02x')
'02'
该02
部分format()
要求使用至少2位数字,并使用零将其填充到长度,x
表示小写的十六进制。
的格式规范的迷你语言也给你X
大写十六进制输出,并且可以前缀字段宽度与#
以包括0x
或0X
前缀(取决于你阉羊使用x
或X
作为格式化器)。只需考虑到您需要调整字段宽度以允许那些额外的2个字符:
>>> format(255, '02X')
'FF'
>>> format(255, '#04x')
'0xff'
>>> format(255, '#04X')
'0XFF'
'{:02x}'.format(255)
str.format()
仅使用它来解析一个插槽就可以使Python做更多的工作(因为在内部它仍然format(255, '02x')
用于那个插槽)。
我认为这是您想要的:
>>> def twoDigitHex( number ):
... return '%02x' % number
...
>>> twoDigitHex( 2 )
'02'
>>> twoDigitHex( 255 )
'ff'
另一个解决方案是:
>>> "".join(list(hex(255))[2:])
'ff'
可能是一个过时的答案,但是很有用。
"".join(list(hex(2))[2:])
计算结果为'2'
,而不是'02'
。
hex(int)[2:]
问题是同义的。您为什么要列出一个清单以便再次加入?