固定点指向浮点

时间:2013-10-28 11:35:03

标签: point floating

我有以下代码,我刚将一些数据从外部RAM复制到一个名为“data”的缓冲区

double p32        = 4.294967296e+009;       /// equals to 2^32 in decimal notation
int32_t      longhigh;
uint32_t     longlow;

offset = mapdata();  //Points to the data I want, 55 bit fixed point on HW
longhigh = data[2*offset+1]; //Gets upperpart of data 
longlow =  data[2*offset]; //Gets lower part  
double floating = (longhigh*p32 + longlow); // What is this doing?  How does it work?

有人可以为我解释最后一行代码吗?为什么我们乘以p32?感谢。

1 个答案:

答案 0 :(得分:0)

乘以p32相当于左移32位。它还会导致产品的类型转换(从intdouble)以及总和。这样,您可以在缓冲区中保留64位int,并在需要时将它们转换为double