计算结果错误

[复制链接]
705|6
 楼主| 司徒老鹰 发表于 2015-9-12 10:38 | 显示全部楼层 |阅读模式
#include<math.h>

void main(void)
{
unsigned long temp;
temp=725*1000;
}
//计算结果temp值应该是0xB1008,可是现在结果是0X1008,是什么原因啊。
llljh 发表于 2015-9-12 10:38 | 显示全部楼层
temp=725ul*1000;

溢出了,与KEIL没有关系
 楼主| 司徒老鹰 发表于 2015-9-12 10:38 | 显示全部楼层
谢谢,我的理解是不是在计算过程中要用到缓冲寄存器?
dingy 发表于 2015-9-12 10:39 | 显示全部楼层

725和1000,你没有指定类型,于是他们是int型。最大就是0xFFFF。
pengf 发表于 2015-9-12 10:39 | 显示全部楼层
你需要把725或者1000指定为long型或者是unsigned long型。
renyaq 发表于 2015-9-12 10:39 | 显示全部楼层
我以为又有人发现KEIL的BUG的。。。。

溢出啦,默认是INT
 楼主| 司徒老鹰 发表于 2015-9-12 10:40 | 显示全部楼层
惭愧,惭愧,结贴了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

427

主题

3735

帖子

8

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