Python - 如何将整数转换为32位十六进制字符串

16 投票
2 回答
15955 浏览
提问于 2025-04-17 00:51

我想要一个用Python解决这个问题的方法:

比如说:

integer 1 -> string "0x00000001"
integer 64 -> string "0x00000040"
integer 3652458 -> string "0x0037BB6A"

如果数字在range(0, 2**32)这个范围内,字符串的大小是不会改变的。

2 个回答

2

从Python 3.6开始,你可以使用f-strings

formatted = f"0x{3652458:08X}"

f-strings让你可以直接把值放进字符串里,放在它们应该出现的位置,而不需要在脑子里记住一堆格式参数:

value = 3652458
print(f"Your formatted value is 0x{value:08x}")
27

试试这个:

'0x%08X' % 3652458

或者(如果你用的是Python 2.6及更新版本)

'0x{0:08X}'.format(3652458)

这两种方法都会返回:

'0x0037BB6A'

撰写回答