OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 11526|回复: 3

四个字节的十六进制浮点数如何转换成十进制浮点数??

[复制链接]

83

主题

400

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2298
金钱
2298
注册时间
2013-8-26
在线时间
229 小时
发表于 2014-3-21 09:14:33 | 显示全部楼层 |阅读模式
从别的机器上发过来的四个字节的浮点数,想转换成十进制的浮点数,显示出来,如何编写程序,多谢。。。
例如:0x41 48 00 00代表十进制的浮点数是12.5.。。就是如何把41 48 00 00转换成12.5.。。。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

3

主题

2178

帖子

2

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
3323
金钱
3323
注册时间
2013-7-19
在线时间
195 小时
发表于 2014-3-21 09:41:08 | 显示全部楼层
如果简单一点
把发过来的浮点数*10后放入另外一个浮点型变量里面
然后定义一个整形变量,进行强制类型转换
整形变量=(int)(浮点变量);
最后显示为125,既然前面*10,这里人为添加一个小数点即可。
缺点就是你需要保留n位小数,就需要乘以10的n次方。
如果要更精确的算法,参考http://blog.sina.com.cn/s/blog_648d306d0100qnuf.html
另外一点,12.5这个十进制数是人认知的概念,在单片机里面都是二进制保存的。如果你非要12.5,那只有将数值转换为字符串
回复 支持 反对

使用道具 举报

83

主题

400

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2298
金钱
2298
注册时间
2013-8-26
在线时间
229 小时
 楼主| 发表于 2014-3-21 14:31:34 | 显示全部楼层
回复【2楼】ricefat:
---------------------------------
先谢了,转换成整数的话,能实现,就是可以得到12,但是那个.5怎么弄出来 的还是没明白啊。。
回复 支持 反对

使用道具 举报

3

主题

2178

帖子

2

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
3323
金钱
3323
注册时间
2013-7-19
在线时间
195 小时
发表于 2014-3-21 15:42:45 | 显示全部楼层
回复【3楼】ws_zdyz:
---------------------------------
*10完了不就是125嘛 你显示的时候显示成12.5就是了
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-10 17:53

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表