Python整数转十六进制字符串,带填充。

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

考虑到一个整数2,我想把它转换成十六进制字符串'0x02'。我想把它转换成十六进制字符串'0x02'。通过使用python的内置函数 hex()我可以得到'0x2',这不适合我的代码。谁能告诉我如何方便地得到我想要的东西?谢谢你。

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

查看 PEP 3101特别是 标准格式指定器 以获得更多信息。


3
投票

对于整数,可能是非常大的。

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

"big "指的是 "big endian"... 产生的字符串在视觉上与人类期望的一致.

如果你想的话,你可以在前面加上 "0x"。

hex = "0x" + hex

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

请看 格式规范迷你语言

© www.soinside.com 2019 - 2024. All rights reserved.