将 int 转换为给定字符数的十六进制

问题描述

我想将我的 int 数字转换为 hex 数字,以指定我最终十六进制表示中的字符数。

这是我接受输入并将其转换为 hex 的简单代码

my_number = int(1234)
hex_version = hex(my_number)

代码返回一个等于 0x4d2 的字符串。

但是我希望我的输出包含 16 个字符,所以基本上它应该是 0x00000000000004d2

有没有办法指定 hex() 运算符的输出字符数?使其填充所需的 0 量。

解决方法

来自 Python 的 Format Specification Mini-Language

n = int(1234)
h = format(n,'#018x')

以上将生成所需的字符串。幻数 18 的获得方式如下:16 表示您需要的宽度 + 2 表示 '0'(零)和 'x'(用于十六进制描述符字符串前缀)。