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

TCL中十六进制与IEEE 754浮点数双向转换的内置方法问询

TCL 十六进制与浮点类型双向转换方法

TCL原生内置的binary命令就完全支持你需要的双向转换能力,无需安装第三方扩展,8.5及以上版本的TCL都可以直接使用。


浮点值转十六进制字符串

32位float转十六进制

使用binary pack的R(大端)/r(小端)格式符打包浮点值,再转换为十六进制即可:

# 示例:3.14 转 32位大端float对应十六进制
set float_val 3.14
set bin_data [binary pack R $float_val]
binary scan $bin_data H8 hex_32
puts $hex_32
# 输出结果:4048f5c3

64位double转十六进制

使用binary pack的Q(大端)/q(小端)格式符处理即可:

# 示例:3.14 转 64位大端double对应十六进制
set double_val 3.14
set bin_data [binary pack Q $double_val]
binary scan $bin_data H16 hex_64
puts $hex_64
# 输出结果:40091eb851eb851f

十六进制字符串转浮点值

32位十六进制转float

先把十六进制字符串转为二进制数据,再用对应格式符解析:

# 示例:4048f5c3 转 32位float值
set hex_32 4048f5c3
binary scan [binary format H8 $hex_32] R float_val
puts $float_val
# 输出结果:3.14

64位十六进制转double

同理用64位对应的格式符处理:

# 示例:40091eb851eb851f 转 64位double值
set hex_64 40091eb851eb851f
binary scan [binary format H16 $hex_64] Q double_val
puts $double_val
# 输出结果:3.14

补充说明

  • 格式符大小写对应字节序:大写R/Q为大端(网络字节序),小写r/q为小端,根据你的十六进制数据的字节序选择即可。
  • 如果不需要指定字节序,直接用当前系统原生字节序的话,可以用f(32位float原生序)、d(64位double原生序)格式符,不需要额外判断大小端。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 21:45:06