打印

浮点数显示问题

[复制链接]
3360|14
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
wgq5416|  楼主 | 2008-4-10 10:30 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
当plc传给我的从站为浮点数时,我收到的的是符合IEEE754国际标准的四字节形式,但是我想把他通过数码管显示出去,我怎么处理这个译码的过程呢?想了好久没有想明白。比如说在plc端传一个浮点数11.375,我的从站底层收到的就是41 36 00 00(16进制四字节形式)。我在单片机里怎么处理才能正确显示11.375。 (我用的单片机是AT89S52)

相关帖子

沙发
与时俱进| | 2008-4-11 10:16 | 只看该作者

查询浮点数 IEEE754的格式

你根据这个格式去处理就是了。

使用特权

评论回复
板凳
王紫豪| | 2008-4-14 23:23 | 只看该作者

re

1.首先转换一下浮点数,大概意思如下;

main()
{

union {
    char abc[4];
    float d;    
    }x;

  x.abc[3]=0x41;
  x.abc[2]=0x36;
  x.abc[1]=0;
  x.abc[0]=0;

  printf("%f",x.d);
}

2. 得到 x.d 这个浮点数后,再用sprintf(buffer,"%f",x.d),这样缓冲区buffer里面就是 “11.37500”啦,哈哈!!



楼猪感谢我吧!

使用特权

评论回复
地板
王紫豪| | 2008-4-14 23:28 | 只看该作者

另外提醒楼主,注意cpu大小端的问题

使用特权

评论回复
5
wgq5416|  楼主 | 2008-4-15 08:40 | 只看该作者

太感谢了,支持~受用!向你学习!

使用特权

评论回复
6
王紫豪| | 2008-4-15 22:33 | 只看该作者

请我吃饭,哈哈!

使用特权

评论回复
7
ty07211028| | 2010-12-22 08:23 | 只看该作者
LS可爱啊

使用特权

评论回复
8
szlrsmt| | 2010-12-22 11:47 | 只看该作者
:handshake学习了。。

使用特权

评论回复
9
beanandpeach| | 2012-12-12 17:50 | 只看该作者
学习

使用特权

评论回复
10
LG2012GG| | 2012-12-29 20:44 | 只看该作者
浮点数的传输显示我做过了,
但又忘了,一时没法回答你,要用到指针

使用特权

评论回复
11
么么沫沫| | 2013-10-9 13:43 | 只看该作者

使用特权

评论回复
12
make8419247| | 2013-10-11 08:54 | 只看该作者
没太看明白

使用特权

评论回复
13
九牛座| | 2014-12-31 10:51 | 只看该作者
3楼的方法确实可行吗?

使用特权

评论回复
评论
ningling_21 2015-9-21 17:35 回复TA
大家都是这么做的 
14
liurang2012| | 2020-12-14 13:02 | 只看该作者
学习

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

16

主题

35

帖子

2

粉丝