求可批量将float32数值列表转换为十六进制的脚本或工具
批量将Float32数值转十六进制的简易方案
方法一:直接用HxD批量导入(最省心,无需额外工具)
你正在使用的HxD本身就支持批量处理,步骤如下:
- 把所有需要转换的float数值一行一个复制到记事本,保存为纯文本文件(比如命名为
vertex_values.txt) - 打开HxD并定位到模型文件中需要替换的位置
- 点击顶部菜单栏的「编辑」→「导入」→「文本文件」
- 在弹出窗口中:
- 选中你保存的
vertex_values.txt - 「数据类型」选择32-bit float (IEEE 754)
- 「字节顺序」选择Big-Endian (Motorola)(和你给出的示例格式匹配;如果游戏内不生效,可换成Little-Endian重试)
- 选中你保存的
- 点击确定,HxD会自动将所有数值转换为十六进制并插入到当前光标位置
方法二:极简Python脚本(适合自定义格式需求)
如果你需要生成纯字符串格式的十六进制结果,复制以下代码即可使用,无需懂编程:
# 替换这里的数值为你的float列表,一行一个 float_list = [ 0.298584, 0.423096, 0.308350, 0.417480, 0.268066, 0.392578, 0.321045, 0.464844, 0.309814, 0.464844, 0.308350, 0.511963, 0.298584, 0.506348, 0.268066, 0.536865, 0.284668, 0.498291, 0.260010, 0.523193 ] import struct # 生成无空格的十六进制字符串(Big-Endian格式,和示例一致) hex_result = "" for num in float_list: # 若要Little-Endian格式,把'!f'改成'<f' hex_bytes = struct.pack('!f', num).hex() hex_result += hex_bytes print("无空格版本:") print(hex_result) print("\n带空格版本:") print(' '.join([hex_result[i:i+2] for i in range(0, len(hex_result), 2)]))
使用步骤:
- 从Python官网下载安装Python(默认安装即可)
- 复制代码到记事本,替换
float_list内的数值为你自己的 - 保存文件为
float2hex.py,双击运行 - 弹出的命令窗口会显示两种格式的结果,直接复制即可使用
方法三:在线工具(无需安装软件)
找支持批量Float32转十六进制的在线工具,操作步骤:
- 把所有float数值一行一个粘贴到工具输入框
- 选择数据类型为32-bit Float (IEEE 754),字节顺序选Big-Endian
- 选择输出格式为「连续十六进制」或「带空格分隔的十六进制」
- 复制生成的结果即可
内容的提问来源于stack exchange,提问作者Eddie
相关产品推荐
相关产品推荐

