【问题标题】:How to convert IEEE754 float (4 bytes) to F2 BGN 16-bit format?如何将 IEEE754 浮点数(4 字节)转换为 F2 BGN 16 位格式?
【发布时间】:2023-03-22 14:08:02
【问题描述】:

我用 C++ 开发了一个用于地震数据处理的应用程序。我有一个F2 BGN 格式的地震数据文件。 F2 BGN 16 位格式是 1 位 - 符号,11 位 - 幅度,4 位 - 增益。我可以通过这种方式将F2 BGN 转换为 IEEE-754 浮点数:(mantissa / (2 ** 10)) * 2 ** (15 - gain),其中尾数是前 12 位。我认为这是一些“古老”的格式。这似乎是一种半浮点格式。 如果有人知道如何进行转换(我知道有精度损失)或者如果有人知道文档,请告诉我。 提前致谢。

【问题讨论】:

  • 请澄清您的具体问题或提供其他详细信息以准确突出您的需求。正如目前所写的那样,很难准确地说出你在问什么。
  • 我想知道如何将浮点数转换为 F2 BGN 16 位格式(如上所述)。我可以从浮点数中提取尾数和指数,但我不明白接下来我应该如何处理它们。我不知道 F2 BGN 格式中的“幅度”和“增益”是什么意思(可能是尾数和指数?我不确定)。除了我上面描述的以外,我没有关于这种格式的更多信息。

标签: c++


【解决方案1】:

这篇文章包含 C++ 中的 16 位实现列表:https://stackoverflow.com/a/56016178/16792184

如果这对您不起作用,您始终可以使用 C++ 位集 (https://en.cppreference.com/w/cpp/utility/bitset) 并使用它定义您自己的 16 位半精度类型。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-08-09
    • 1970-01-01
    • 2014-08-13
    • 2011-10-25
    • 1970-01-01
    • 2020-04-27
    • 2021-03-26
    相关资源
    最近更新 更多