电子说
在DSP上做数据处理遇到,浮点型存储格式,转换成十进制的浮点型参与运算。
最终通过用union与struct,问题解决了。对于这一类问题:位操作。其实每个平台的库代码里有现成的例子。那就是每个平台的库中都有寄存器的定义。就是用union与struct,即可解决。
typedef union { float f_val; struct { unsigned long datatail: 23; unsigned long exponent : 8; unsigned long sign : 1; } bits;} myfloat;
在处理函数中,做赋值即可:
val.bits.sign = data_sign; val.bits.exponent = data_exp; val.bits.datatail= data_tail; fReceive = val.f_val; //返回 fReceive 是float型 return fReceive;
审核编辑:符乾江
全部0条评论
快来发表一下你的评论吧 !