【问题标题】:Fixed point to Floating point定点转浮点
【发布时间】:2013-10-28 11:35:03
【问题描述】:

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

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?谢谢。

【问题讨论】:

    标签: point floating


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 2011-08-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-09-12
      • 2016-01-12
      • 2021-11-17
      相关资源
      最近更新 更多