31为16进制数转单精度浮点数

2019-08-16 22:54发布

这里串口读上来一个十六进制数据为41DA0000 转换成单精度应为27.25   浮点数转换 浮点数转换 我用图中函数只是将它强制转换  可是转换后的数值不对,跪求怎样将这个十六进制转换成正确的单精度浮点数。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
4条回答
Loading1
1楼-- · 2019-08-16 22:56
多谢  我用联合体的方法解决了  代码如下:
union data
{
        unsigned char A[4];
        float Temp;
};
int main(void)
{       
        union data  a;
        a.A[0]=0x00;
        a.A[1]=0x00;
        a.A[2]=0xDA;
        a.A[3]=0x41;
        float fdata=a.Temp;
}
jokeym
2楼-- · 2019-08-16 23:22
你试着返回个指针试试
Theone
3楼-- · 2019-08-17 01:56
你可能需要将你定义的数组进行字节对其,4字节对其。然后在用你的方法就可以正确读出来了。或者你定义一个long int(四字节),然后把你读到的数据使用unsigned char 挨个写入到这个int类型,然后再强转成float类型应该也是可以的。
lishenshi
4楼-- · 2019-08-17 01:59
 精彩回答 2  元偷偷看……

一周热门 更多>