读书人

int类型存储最大数是32767如果再加1

发布时间: 2012-03-14 12:01:13 作者: rapoo

int类型存储最大数是32767,如果再加1会有什么变化?
如图,有书解释int类型存储最大32767,+1会溢出,实际操作结果:

C/C++ code
# include <stdio.h>int main(void){    int a,b;    a=32767;    b=a+1;    printf("%d %d\n",a,b);    return 0;}


运行结果:

32767 32768
Press any key to continue



[解决办法]
32767+1 = 0x7FFF+1 = 0x8000 = 1000 0000 0000 0000

1000 0000 0000 0000为有符号数,是一个付数,取反+1 = -(111 1111 1111 1111 +1)
= -(1000 0000 0000 0000)
= -32768
[解决办法]
探讨
如图,有书解释int类型存储最大32767,+1会溢出,实际操作结果:

C/C++ code

# include <stdio.h>
int main(void)
{
int a,b;
a=32767;
b=a+1;
printf("%d %d\n",a,b);
return 0;
}


运行结果:

32767 32……

[解决办法]
书里的int是16位 你这里的int可能是32位的

[解决办法]
你的书可以扔掉了,现在的64位win7都跑不了16位程序了,教材竟然还是16位的
[解决办法]
扔了算了
[解决办法]
又吞楼 现在一般的int都是32位咯
[解决办法]
int a =0x7FFFFFFF+1

读书人网 >C语言

热点推荐