Python整数到十六进制字符串

问题描述 投票:2回答:4

考虑整数2.我想将其转换为十六进制字符串'0x02'。通过使用python的内置函数hex,我可以得到'0x2',这不适合我的代码。任何人都可以告诉我如何以方便的方式得到我想要的东西。谢谢。

python hex
4个回答
8
投票
integer = 2
hex_string = '0x{:02x}'.format(integer)

有关详细信息,请参阅pep 3101,尤其是标准格式说明符。


2
投票

答案是Python的内置方法hex

>>> a = hex( 23456 )
>>> type( a ) 
<type 'str'>
>>> a
'0x5ba0'

1
投票
>>> integer = 2
>>> hex_string = format(integer, '#04x')  # add 2 to field width for 0x
>>> hex_string
'0x02'

Format Specification Mini-Language


0
投票

对于可能非常大的整数:

integer = 2
hex = integer.to_bytes(((integer.bit_length() + 7) // 8),"big").hex()

“大”指的是“大端”......导致字符串在视觉上与人类期望的一致。

如果需要,您可以在前面粘贴“0x”。

hex = "0x" + hex
© www.soinside.com 2019 - 2024. All rights reserved.