打印

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

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

使用特权

评论回复
板凳
liuzaiy|  楼主 | 2015-9-18 18:51 | 只看该作者
比如我单片机读过来的数据是16进制:43FA0000,换算后实际是10进制浮点数500.00,我想放大100倍后用于在数码管显示,浮点数这块如何处理呢?

使用特权

评论回复
地板
pangb| | 2015-9-18 18:51 | 只看该作者
你是要参考程序吗

使用特权

评论回复
5
liuzaiy|  楼主 | 2015-9-18 18:51 | 只看该作者
对,尤其是浮点数处理这块!

使用特权

评论回复
6
chenjunt| | 2015-9-18 18:52 | 只看该作者
正负符号位得注意

使用特权

评论回复
7
ousj| | 2015-9-18 18:52 | 只看该作者
(unsigned long)(i * 100.0)

使用特权

评论回复
8
liuzaiy|  楼主 | 2015-9-18 18:52 | 只看该作者
你好,这样做恐怕不对吧?!读过来的是4个字节的IEEE754国际标准的16进制数据哦!

使用特权

评论回复
9
morrisk| | 2015-9-18 18:52 | 只看该作者
是不是先得转换呢?

使用特权

评论回复
10
zyf部长| | 2015-9-18 18:53 | 只看该作者
U32 out;

out = i * 100;

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

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

使用特权

评论回复
11
liuzaiy|  楼主 | 2015-9-18 18:54 | 只看该作者
这个U32 out
是定义了一个浮点数吗?
比如我单片机接收到的数据就是43FA0000这个16进制的,
然后这里定义了一个flaot型的Out变量后,把43FA0000赋值给out后,
就会自动转换为实际真实的浮点数500.00吗?

使用特权

评论回复
12
小小猫咪| | 2015-9-18 18:54 | 只看该作者
这个U32 out
是定义了一个浮点数吗?

不是浮点数,是长整型数

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

使用特权

评论回复
13
liuzaiy|  楼主 | 2015-9-18 18:55 | 只看该作者
嗯,我看下,多谢哈

使用特权

评论回复
14
sanxinweiled| | 2015-9-19 16:21 | 只看该作者
学习了     

使用特权

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

本版积分规则

735

主题

7546

帖子

2

粉丝