【问题标题】:Converting an array of bytes into a float32将字节数组转换为 float32
【发布时间】:2016-01-26 03:48:35
【问题描述】:

我有一个 JavaScript 应用程序,它接收电压值作为 Uint8Array。以下是接收数据的 2 个示例:

[3, 134, 46, 177, 46, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
[3, 127, 46, 170, 46, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]

我正在尝试将此Uint8Array 转换为浮点值,但我不确定它是float32 还是float64,是否已签名。我所知道的是这个值在 12 左右。

谁能帮助使用 JavaScript sn-p 进行转换?

提前谢谢你。

【问题讨论】:

  • 对于您给出的输入,您需要的预期输出是多少?
  • 对我来说看起来像 20 个字节,既不是 float32 也不是 float64
  • 取前 8 个字节给出 2.843474359893e-312 或 4.021529366771898e-87(小端与大端),所以我认为缺少一些信息。如果您不知道条目的确切含义:什么机器/传感器/库为您提供这些值?

标签: javascript binary floating-point


【解决方案1】:

每条线似乎都有两个电压。来自设备的电压通常来自具有 8 到 16 位信息的 ATOD 转换器,并根据电路进行缩放。

它看起来像一个 3(未使用,可能是某种模式标志),后跟两对字节,每对一个来自 ATOD 的电压。我猜想 177 和 46 这样的两个字节应该被解释为 (177+46*256)/1000.0 基于 1 mv。缩放。这会产生刚刚超过 11.9 伏的值。鉴于这两个样本的范围,这将符合您的期望。

【讨论】:

    猜你喜欢
    • 2019-05-21
    • 2022-01-15
    • 2016-07-01
    • 2014-08-08
    • 1970-01-01
    • 1970-01-01
    • 2017-07-21
    • 2023-03-11
    • 2019-11-24
    相关资源
    最近更新 更多