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

cas*_*lic 3 erlang encode decode ieee-754

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

Ste*_*ski 6

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

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

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

3> binary_to_list(<<V:32/float>>).
[66,145,0,0]
Run Code Online (Sandbox Code Playgroud)