如何将十进制转换为以下格式的十六进制(至少两位,零填充,没有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:]问题是同义的。您为什么要列出一个清单以便再次加入?