当前位置: 代码迷 >> C语言 >> [求助]数据范围问题
  详细解决方案

[求助]数据范围问题

热度:128   发布时间:2007-03-15 22:03:01.0
[求助]数据范围问题

初学者有个问题没理解透
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 怎么回事?

a,c都要为long才可以
----------------解决方案--------------------------------------------------------

  相关解决方案