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

标签 erlang decode encode ieee-754

这里是 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]

关于erlang - 使用 Erlang 从原始数据解码/编码 IEEE 754 浮点值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31643985/

相关文章:

ios - 使用 swift 4 进行 JSON 编码/解码

erlang - 如何知道原子或字符串是否是有效标识符

concurrency - 如果只有很少的进程可以并行执行,那么能够有效地生成数十个进程有什么意义呢?

erlang - Erlang 中的 "new"是官方标准的一部分吗?我们应该使用它吗?

javascript - 如何从 javascript 中的 json 字符串解析出未转义的单引号 ' Google Translate

android - MediaCodec getInputImage 在某些设备上返回 null

binary - 为什么 erlang 二进制中巨大数字的 byte_size 是 1?

python - 在 Python 3.6 中解码 %xx

c++ - B64 编码/解码处理,以防数据不是 3 的倍数

swift - 有没有办法对闭包进行编码和解码?