【问题标题】:Decode / Encoded IEEE 754 float value from raw data with Erlang?使用 Erlang 从原始数据解码/编码 IEEE 754 浮点值?
【发布时间】: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


    【解决方案1】:

    对于解码,您可以将列表转换为二进制,然后从二进制中提取浮点数(请注意,您问题中的原始列表值是十六进制的,这就是为什么它们在下面的列表中以 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]
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-01-06
      • 2014-10-18
      • 2012-03-13
      • 2013-07-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多