int类型存储最大数是32767,如果再加1会有什么变化?该如何解决

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