Python 3.x中如何生成保留前导零的8位十六进制值?
解决Python中十六进制递增后保留8位前导零的问题
问题核心是hex()函数默认返回带0x前缀且不补前导零的格式,要得到严格8位的十六进制字符串,只需对递增后的整数做格式化输出即可,以下是几种Python 3.x中的实现方式:
- 使用f-string格式化(Python 3.6+推荐)
counter = "0000019c" i = int(counter, 16) i += 1 print(f"{i:08x}") # 输出:0000019d
- 使用
str.format()方法
counter = "0000019c" i = int(counter, 16) i += 1 print("{:08x}".format(i)) # 输出:0000019d
- 使用内置
format()函数
counter = "0000019c" i = int(counter, 16) i += 1 print(format(i, "08x")) # 输出:0000019d
格式说明符解释
08x的含义:
0:指定用0填充空位,而非默认的空格8:指定输出总长度为8位x:表示输出小写十六进制字符,若需大写结果,替换为X即可(输出0000019D)
内容的提问来源于stack exchange,提问作者mehul makwana
相关产品推荐
相关产品推荐

