在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;
审核编辑:符乾江
-
dsp
+关注
关注
559文章
8219浏览量
364054 -
数据转换
+关注
关注
0文章
99浏览量
18467
发布评论请先 登录
使用VScode的PIO开发GD32VF103,但是串口无法打印浮点数怎么解决?
定点数表示实数的方法以及定点数在硬件上的运算验证
E203添加浮点数方法:译码和派遣模块设计
浮点指令(三)
E203添加浮点数方法:FPU控制逻辑
浮点数是如何实现开平方运算的
risc-v中浮点运算单元的使用及其设计考虑
大彩讲堂:VisualHMI-LUA教程-获取设置单精度浮点数函数的应用

数据转换:十六进制与浮点数的互相转换
评论