考虑整数2.我想将其转换为十六进制字符串' 0x02'。通过使用python的内置函数hex,我可以获得' 0x2'这不适合我的代码。任何人都可以告诉我如何以方便的方式得到我想要的东西。谢谢。
答案 0 :(得分:8)
integer = 2
hex_string = '0x{:02x}'.format(integer)
有关详细信息,请参阅pep 3101,尤其是标准格式说明符。
答案 1 :(得分:2)
答案是Python的内置方法hex
。
>>> a = hex( 23456 )
>>> type( a )
<type 'str'>
>>> a
'0x5ba0'
答案 2 :(得分:1)
>>> integer = 2
>>> hex_string = format(integer, '#04x') # add 2 to field width for 0x
>>> hex_string
'0x02'
答案 3 :(得分:0)
对于可能非常大的整数:
integer = 2
hex = integer.to_bytes(((integer.bit_length() + 7) // 8),"big").hex()
“大”指的是“大端”......导致一个字符串在视觉上与人类期望的一致。
如果需要,可以在前面粘贴“0x”。
hex = "0x" + hex