You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python用hex函数处理十六进制数丢失前导零 如何保留固定长度?

十六进制前导零保留解决方案

问题原因

hex() 函数仅会输出表示数值所需的最短十六进制字符串,不会保留原始字符串的前导零;int() 转换后仅保存数值大小,也不记录原始字符串的长度信息,所以会出现前导零丢失的问题。

解决方法

通用方案(适配不同长度的原始十六进制行)

先读取每行原始十六进制的长度,输出时按照原始长度补零即可,修改后代码如下:

with open("data.txt", "r") as file:
    for line in file:
        line = line.strip()
        # 记录原始十六进制数字部分的长度(去掉开头的0x)
        origin_digit_len = len(line) - 2
        num = int(line, 0)
        # 格式化输出:前缀加0x,数字部分用0填充到原始长度
        res = f"0x{num:0{origin_digit_len}x}"
        print(res)

固定长度方案(所有原始十六进制长度一致时使用)

如果你的所有输入十六进制数字部分都是固定128位(示例输入就是该长度),可以直接写死长度,代码更简洁:

with open("data.txt", "r") as file:
    for line in file:
        num = int(line.strip(), 0)
        res = f"0x{num:0128x}"
        print(res)

格式化参数说明

  • 格式符末尾的x表示输出小写十六进制字符,如果需要匹配大写字母,替换为X即可
  • 0{长度} 表示使用0作为填充字符,将数字部分补到指定长度

内容的提问来源于stack exchange,提问作者Dew Debra

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 06:54:04