1

可能重复:
32 位到 16 位浮点转换

如何在 C 中转换 32 位浮点数和 16 位半精度浮点数?

4

2 回答 2

1

我建议你检查一下这个half_floats

您还应该考虑存储这些半浮点数的方式(C 中没有这种类型)

于 2012-08-13T11:09:48.897 回答
1

由于 C 通常没有内置的 16 位浮点类型,我希望您要么必须

  1. 使用一些超级特定的平台“魔法”,如可用的专用 CPU 指令。这当然不是 C 解决方案,它可能是 C 源代码中的内联汇编。不便携。
  2. 手动将所需的位提取到一个unsigned short. 这将是可移植的,但可能会慢很多。

这两个都假设您想要做的只是构建值的表示,当然您不能使用 C 的运算符进行算术运算。

于 2012-08-13T11:12:52.500 回答