OpenEdv-开源电子网

 找回密码
 立即注册

扫一扫,访问微社区

正点原子全套STM32开发资料,上千讲STM32视频教程,RT1052教程免费下载啦...

查看: 1530|回复: 5

求教32位浮点数与十进制数的相互转换

[复制链接]

  离线 

9

主题

12

帖子

0

精华

初级会员

Rank: 2

积分
72
金钱
72
注册时间
2014-4-9
在线时间
1 小时
发表于 2015-5-29 16:00:10 | 显示全部楼层 |阅读模式
5金钱
我用c写了一段浮点数转十进制数的程序,但是数值如果小于1,转换出来的结果就一直为0。。。

求一个用C写的它们两个相互转换的代码。。

最佳答案

查看完整内容[请看2#楼]

为什么要转呢?浮点数不就是10进制数吗? 强制类型转换的话会丢掉小数部分! 如果只是转换成字节,发送出去,可以这样写 float fnun=1.256; char buf[4],*p=NULL; p=(char)&fnum; buf[0]=*p++; buf[1]=*p++; buf[2]=*p++; buf[3]=*p;
回复

使用道具 举报

  离线 

9

主题

1331

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
4683
金钱
4683
注册时间
2013-3-8
在线时间
634 小时
发表于 2015-5-29 16:00:11 | 显示全部楼层
为什么要转呢?浮点数不就是10进制数吗?
强制类型转换的话会丢掉小数部分!

如果只是转换成字节,发送出去,可以这样写

float fnun=1.256;
char buf[4],*p=NULL;
p=(char)&fnum;
buf[0]=*p++;
buf[1]=*p++;
buf[2]=*p++;
buf[3]=*p;
回复

使用道具 举报

  离线 

9

主题

12

帖子

0

精华

初级会员

Rank: 2

积分
72
金钱
72
注册时间
2014-4-9
在线时间
1 小时
 楼主| 发表于 2015-5-29 17:02:53 | 显示全部楼层
回复【2楼】augustedward:
---------------------------------
是把IEE754标准的32位浮点数转换成十进制数。。

例如 0x41280000=10.5
回复

使用道具 举报

  在线 

1

主题

323

帖子

0

精华

高级会员

Rank: 4

积分
805
金钱
805
注册时间
2014-7-23
在线时间
253 小时
发表于 2015-5-29 17:52:21 | 显示全部楼层
可以试一下,查表法。。。
回复

使用道具 举报

  离线 

2

主题

14

帖子

0

精华

新手上路

积分
44
金钱
44
注册时间
2015-5-9
在线时间
5 小时
发表于 2015-5-29 20:29:26 | 显示全部楼层
正点原子公众号
回复【4楼】guset_03:
---------------------------------
资源用的太多啊
回复

使用道具 举报

  离线 

1

主题

6

帖子

0

精华

新手上路

积分
47
金钱
47
注册时间
2017-9-22
在线时间
7 小时
发表于 2018-1-9 17:59:34 | 显示全部楼层
  int   a=0x41280000;
  float b=*(float*)&a;
  printf("%.4f\n",b);
回复

使用道具 举报

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

本版积分规则




关闭

"原子哥”推荐上一条 /1 下一条

QQ|联系我们|手机版|官方淘宝店|新浪微博|微信公众平台|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2018-7-23 14:04

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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