Python:如何用格式化字符串实现机器地址长度的十六进制对齐
解决方法
要实现这个地址格式化,你可以用两种仅靠格式化字符串的方式:
方法一:利用格式化字符串的
#前缀标识和宽度控制,直接写为:addr = 0x7fffffffd908 formatted_addr = "{:#018x}".format(addr) # 输出结果:0x00007fffffffd908这里的
#会自动添加0x前缀,018表示总输出宽度为18(包含0x),不足的部分会在数字前面补零,正好匹配你的需求。方法二:分开处理前缀和数字部分,先把数字格式化为16位补零的十六进制,再拼接
0x:addr = 0x7fffffffd908 formatted_addr = "0x{:016x}".format(addr) # 输出结果:0x00007fffffffd908
你之前用的"{:0>#18x}"出错,是因为它会把填充的零加在0x前缀的前面,而非数字部分,所以才会出现00000x7fffffffd908这种不符合要求的结果。
内容的提问来源于stack exchange,提问作者Yun7k
相关产品推荐
相关产品推荐

