【发布时间】:2012-05-02 13:35:54
【问题描述】:
是的,我知道 IEEE-754 半精度标准,是的,我知道在该领域所做的工作。简而言之,我试图将一个简单的浮点数(如 52.1 或 1.25)保存在 2 个字节中。
我在Java 和C# 中尝试了一些实现,但它们通过解码不同的数字而破坏了输入值。你输入32.1,编码解码后你得到32.0985。
有什么方法可以在不破坏输入值的情况下以 16 位存储浮点数?
非常感谢。
【问题讨论】:
-
二进制浮点不能编码
32.1 -
你需要编码什么范围的数字,它们有多少个有效数字?考虑十进制定点或浮点数。
-
您可以将其存储为
unsigned short,其中一些位用于指数部分吗?然后,您将手动从这种格式转换回常规单精度float。 -
CodeInChaos 所说的——逐字逐句...
-
您的问题陈述需要更加具体。两个字节最多可以表示 65536 个不同的浮点值。哪些是你想要的?最坏的情况是,你可以有一个“我关心的 65536 个浮点值”的表,然后查找这个两字节的值。
标签: c# binary floating-point ieee-754 numerical