[求助]数据范围问题
初学者有个问题没理解透
main()
{
int a,b,c;
a=32767;
b=1;
c=a+b;
printf("%d",c);
}
输出结果是-32768 说是数据范围 但是我还是有点理解不过来到底是怎么回事
如果我想要得到两个数的和是 32768 这个程序要怎么改呢?
谢谢大家了
[此贴子已经被作者于2007-3-15 22:18:23编辑过]
----------------解决方案--------------------------------------------------------
long int a
长整型!
----------------解决方案--------------------------------------------------------
类似手表,走到12点后就是1点了
[此贴子已经被作者于2007-3-15 22:06:11编辑过]
----------------解决方案--------------------------------------------------------
楼上的,你的意思是说 int 的起始值 是-32768 是这样吗?
----------------解决方案--------------------------------------------------------
他的范围是-32768到32767
----------------解决方案--------------------------------------------------------
但是我象2楼的改成 long int 运行结果还是-32768 怎么回事?
----------------解决方案--------------------------------------------------------
带符号数的int是16位,从-32768 ~ +32767
----------------解决方案--------------------------------------------------------
不会吧
----------------解决方案--------------------------------------------------------
哦,是的,你还要改一点,输出的时候用%ld
----------------解决方案--------------------------------------------------------
以下是引用yjh8656在2007-3-15 22:12:58的发言:
但是我象2楼的改成 long int 运行结果还是-32768 怎么回事?
但是我象2楼的改成 long int 运行结果还是-32768 怎么回事?
a,c都要为long才可以
----------------解决方案--------------------------------------------------------