使用 Erlang 从原始数据解码/编码 IEEE 754 浮点值?

Decode / Encoded IEEE 754 float value from raw data with Erlang?

这里是 Erlang 的新手... 我需要从列表中的原始数据中提取 IEEE 754 浮点值。 例如。 解码:[42,91,0,0] 应等于 72.5 并将浮点数转换为列表 编码:72.5 应转换为 [42,91,0,0] 是否有支持这些操作的库?什么是最佳实践? 提前致谢。

对于解码,你可以将列表转换为二进制,然后从二进制中提取浮点数(注意你问题中的原始列表值是十六进制的,这就是为什么它们在 16#下面的列表):

1> <<V:32/float>> = list_to_binary([16#42, 16#91, 0, 0]).
<<66,145,0,0>>
2> V.
72.5

对于编码,执行相反的操作:将浮点值插入二进制,然后将其转换为列表:

3> binary_to_list(<<V:32/float>>).
[66,145,0,0]