【发布时间】:2015-10-17 02:25:31
【问题描述】:
这里是 Erlang 的新手... 我需要从列表中的原始数据中提取 IEEE 754 浮点值。 例如。 解码:[42,91,0,0] 应该等于 72.5 并将浮点数转换为列表 编码:72.5 应转换为 [42,91,0,0] 有没有支持这些操作的库?什么是最佳实践? 提前致谢。
【问题讨论】:
标签: erlang decode encode ieee-754
这里是 Erlang 的新手... 我需要从列表中的原始数据中提取 IEEE 754 浮点值。 例如。 解码:[42,91,0,0] 应该等于 72.5 并将浮点数转换为列表 编码:72.5 应转换为 [42,91,0,0] 有没有支持这些操作的库?什么是最佳实践? 提前致谢。
【问题讨论】:
标签: erlang decode encode ieee-754
对于解码,您可以将列表转换为二进制,然后从二进制中提取浮点数(请注意,您问题中的原始列表值是十六进制的,这就是为什么它们在下面的列表中以 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]
【讨论】: