如何在固定点(32位)中表示非常小的浮点数?

时间:2019-08-01 17:05:12

标签: floating-point precision fixed-point

我有一个浮点代码,其中一些变量的范围为1.0e-12到7.89e-20(非常小的浮点数)。

我需要将浮点代码转换为32位定点。如何解决这些变量的Q格式?

很明显,如果我将这些值转换为32位固定点,它将为零。

(int)(1.0e-12 x 2^31) = 0 in Q1.31

还要乘法,对这些变量执行加法运算。

我的代码处理的是极低的振幅信号,这就是可变范围如此之小的原因。

有什么方法可以在32位固定点上表示非常小的值?

我没有确切的信息来源,但在我读过的地方,要表示较小的浮点数,请使用整数格式的伪浮点。

就像32位整数变量一样:用8位代表指数,用24位代表尾数。

(int)(1.0e-12 x 2^31 x 2^25) = 72057 in Q1.31

exponent = 25 and mantissa = 72057
packing this inside 32-bit integer = 0x19011979
First 8 bits = 0x19 = 25
Rest 24 bits = 0x011979 = 72057

以上方法可以解决我的问题吗?我将如何在这个压缩数字中进行乘法或加法运算?

0 个答案:

没有答案