打印

转换为10进制并放大100倍后在数码管上显示

[复制链接]
575|12
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
yufe|  楼主 | 2017-7-9 21:57 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
单片机读取一个32位的16进制数,符合IEEE754国际标准的四字节形式,我要想把它转换为10进制并放大100倍后,在数码管上显示!请问怎么操作?
沙发
llia| | 2017-7-9 21:59 | 只看该作者
每太看懂你要干嘛

使用特权

评论回复
板凳
yufe|  楼主 | 2017-7-9 22:01 | 只看该作者

比如我单片机读过来的数据是16进制:43FA0000,换算后实际是10进制浮点数500.00,我想放大100倍后用于在数码管显示,浮点数这块如何处理呢?

使用特权

评论回复
地板
wangpe| | 2017-7-9 22:06 | 只看该作者
你是要参考程序吗

使用特权

评论回复
5
langgq| | 2017-7-9 22:08 | 只看该作者

对,尤其是浮点数处理这块!

使用特权

评论回复
6
wangzsa| | 2017-7-9 22:09 | 只看该作者
正负符号位得注意

使用特权

评论回复
7
zhuww| | 2017-7-9 22:11 | 只看该作者
(unsigned long)(i * 100.0)

使用特权

评论回复
8
yufe|  楼主 | 2017-7-9 22:12 | 只看该作者

你好,这样做恐怕不对吧?!读过来的是4个字节的IEEE754国际标准的16进制数据哦!

使用特权

评论回复
9
zhanglli| | 2017-7-9 22:17 | 只看该作者

是不是先得转换呢?

使用特权

评论回复
10
lium| | 2017-7-9 22:19 | 只看该作者

U32 out;

out = i * 100;

U8 a = out % 10;
out /= 10;

U8 b = out % 10;
out /= 10;
...

使用特权

评论回复
11
guoyt| | 2017-7-9 22:21 | 只看该作者

这个U32 out
是定义了一个浮点数吗?
比如我单片机接收到的数据就是43FA0000这个16进制的,
然后这里定义了一个flaot型的Out变量后,把43FA0000赋值给out后,
就会自动转换为实际真实的浮点数500.00吗?

使用特权

评论回复
12
hanwe| | 2017-7-9 22:22 | 只看该作者

这个U32 out
是定义了一个浮点数吗?

不是浮点数,是长整型数

直接赋值,只得到浮点数的整数部分

使用特权

评论回复
13
yufe|  楼主 | 2017-7-9 22:24 | 只看该作者
嗯,我看下,多谢哈

使用特权

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

本版积分规则

983

主题

10170

帖子

1

粉丝