[求助] 16进制的浮点数 如何换算为 10进制的浮点数?

yhye2world   2017-2-10 11:07 楼主
见附图
单片机输出了 两个16进制的浮点数(分别为:3E 4E 82 E5和43 B9 46 29)。
MCU为STM32F030。

请教:
如何将这两个16进制的浮点数转换为10进制的浮点数 ?

谢谢!

附图
无标题.png

回复评论 (6)

2推荐 长得帅怪我落 

union{
  float f;
  char  buf[4];
}data;
data.buf[0] = 0x3e;
data.buf[1] = 0x4E;
data.buf[2] = 0x82;
data.buf[3] = 0xE5;

data.f;  


我也是百度的,我这还在研究整数,你们小数就玩的这么6了
点赞  2017-2-10 11:57
float val = 0;//3E 4E 82 E5 *(uint32_t*)&val = 0xE5824E3E; 本帖最后由 lcofjp 于 2017-2-10 12:41 编辑
点赞  2017-2-10 12:37
你是要在单片机上转换还是上位机转换
点赞  2017-2-10 15:12
引用: huo_hu 发表于 2017-2-10 15:12
你是要在单片机上转换还是上位机转换

谢谢版主!

最终实在上位机上 转换的
单片机上是16进制的,不知道 是否正确,想转换为10进制的 ,以便验证
点赞  2017-2-10 16:14
如果你写个程序在上位机运行的话,可以按3楼那么写,然后编译,运行,查看输出。 如果你有perl的话,可以直接用perl命令 echo "print unpack('f', pack('I', 0xe5824e3e));" | perl 本帖最后由 cruelfox 于 2017-2-10 17:19 编辑
点赞  2017-2-10 17:01
引用: yhye2world 发表于 2017-2-10 16:14
谢谢版主!

最终实在上位机上 转换的
单片机上是16进制的,不知道 是否正确,想转换为10进制的 ,以 ...

上位机就是调整一下大小端类型转换一下就行了
点赞  2017-2-12 10:22
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复