打印

PIC单片机算术运算C语言程序问题??

[复制链接]
1320|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
junliangdt|  楼主 | 2013-6-2 09:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 junliangdt 于 2013-6-2 09:53 编辑

#include<pic.h>
unsigned int a=0x7F,b=0x08F1;
float c;
void main()
{
c = (float)(a / b);
}

计算的结果为0.000000000,请问为什么?
沙发
弓长月月鸟| | 2013-6-2 09:41 | 只看该作者
unsigned int a=7F,b=8F1;
,你这样写能够正确编译?不提示警告?

使用特权

评论回复
板凳
yklstudent| | 2013-6-2 16:48 | 只看该作者
很简单的道理嘛  a/b就是0 你把0强制转换为float型 自然就0.000000000了
想得到准确结果 就应该先强制转换a、b中的一个 那样就没什么问题了

使用特权

评论回复
地板
huangxz| | 2013-6-2 22:23 | 只看该作者
楼主这个实验还是不要拿pic来搞比较好,float对pic太累了,要整就整pc.:lol

使用特权

评论回复
5
llqjmy| | 2013-6-3 13:43 | 只看该作者
类型匹配的问题,这样写:
c =  (a*1.0)/b;

使用特权

评论回复
6
ayb_ice| | 2013-6-3 14:32 | 只看该作者
a/b结果等于0,

0再转换成浮点当成是0 了

使用特权

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

本版积分规则

6

主题

31

帖子

2

粉丝