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

如何将长十六进制字符串转换为C代码格式的字节数组?求跨平台工具

把长十六进制字符串转换为C字节数组(每16字节换行)

方法1:Python脚本(跨平台,Windows/Mac通用)

写一个极简Python脚本处理,无需额外依赖:

hex_str = input("粘贴你的十六进制字符串:").strip()
hex_str = hex_str.replace(" ", "").replace("\n", "")  # 清理多余空格换行

output = []
for i in range(0, len(hex_str), 2):
    output.append(f"0x{hex_str[i:i+2].lower()}")
    if (i // 2 + 1) % 16 == 0:
        output.append("\n")

# 拼接成最终格式,处理换行和末尾逗号
result = ", ".join(output).replace("\n, ", "\n")
if result[-1] != "\n":
    result += ","

print(result)

使用步骤:

  • 保存为hex_to_carray.py
  • 终端运行python hex_to_carray.py,粘贴你的8000字节十六进制字符串
  • 复制输出结果,直接替换posix_emu.cpp第113行开始的数组内容

方法2:Mac/Linux命令行(含Windows Git Bash)

如果你的十六进制字符串已存入hex.txt(无空格换行),直接运行:

cat hex.txt | sed 's/\(..\)/0x\1, /g' | awk '{for(i=1;i<=NF;i++){printf "%s", $i; if(i%16==0) printf "\n"}}'

命令逻辑:

  • sed将每两个字符转换为0xXX, 格式
  • awk每16个字节自动换行

方法3:Windows PowerShell

将十六进制字符串存入hex.txt,执行以下脚本:

$hexStr = (Get-Content -Path "hex.txt" -Raw).Replace(" ", "").Replace("`n", "")
$output = @()
for ($i=0; $i -lt $hexStr.Length; $i+=2) {
    $output += "0x$($hexStr.Substring($i,2))"
    if (($i/2 + 1) % 16 -eq 0) {
        $output += "`n"
    }
}
$result = $output -join ", "
$result = $result.Replace("`n, ", "`n")
if ($result[-1] -ne "`n") { $result += "," }
Write-Output $result

注意事项

  • 确保输入的十六进制字符串仅包含0-9、a-f/A-F字符,无多余空格或换行
  • C语言允许字节数组末尾保留逗号,无需手动删除,方便后续修改
  • 替换代码时注意保持原数组的变量名、类型定义与原代码一致

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 20:42:04