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

[复制链接]
1796|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
llqjmy 发表于 2013-6-3 13:43 | 显示全部楼层
类型匹配的问题,这样写:
c =  (a*1.0)/b;
ayb_ice 发表于 2013-6-3 14:32 | 显示全部楼层
a/b结果等于0,

0再转换成浮点当成是0 了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

6

主题

32

帖子

2

粉丝
快速回复 在线客服 返回列表 返回顶部