python指定位数的16进制码

# python

背景

python中hex内置函数无法将生成的16进制码自动补0,比如说:

1
2
3
4
5
6
print(hex(2))
0x2 #输出
print(hex(25225842))
0x180ea72
print(hex(255842))
0x3e762

很明显,这个一点都不好便于后续处理,我们总喜欢规整的嘛,全是总共8位的16进制就是32位数,就像:

1
2
0x00112233
0x12345678

解决办法

 通过多次查资料和尝试,得到如下:

1
2
 def myhex(n):
return "".join(f"0x{n:08x}")


Reference