【发布时间】:2010-02-15 22:57:41
【问题描述】:
我想知道浮点数(4 字节)、双精度浮点数(8 字节)和半浮点数(2 字节,用于 OpenGL 实现)上的位是如何组织的。
此外,我如何从一种转换为另一种?
【问题讨论】:
标签: opengl floating-point double
我想知道浮点数(4 字节)、双精度浮点数(8 字节)和半浮点数(2 字节,用于 OpenGL 实现)上的位是如何组织的。
此外,我如何从一种转换为另一种?
【问题讨论】:
标签: opengl floating-point double
实质上,对于这些格式中的每一种,您都有:
如果符号位为1,则为负数,否则为正数。
要获得幅度,您需要 (1 + M) * 2^(E - k),其中 k(称为“指数偏差”)取决于格式。
值得注意的是,符号、指数和尾数的某些组合是“特殊”值,例如 0、-inf、+inf 和 NaN。
有关详细信息(x、y 和 k 的值),请参阅维基百科的 single precision(4 个字节)、double precision(8 个字节)和 half precision(2 个字节)。
请注意,这些都是由IEEE 754 指定的,因此使用谷歌搜索可能会给您带来有用的结果。 :)
【讨论】: