c语言中int变量范围为什么是—32768至32767 就是正数的最大是2的15次方减一,想请教为什么要减一呢?

为什么不能表示正数32768呢?

你说的这个int是两个字节的,每个字节8位,由于第1位要用来表示符号位所以正的最大值是
0 1111111 11111111 总共15个1,
而2的15次方是
1 0000000 00000000
2的15次方减一刚好是 0111111111111111,就是 32767
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-07-24
在机器中 有符号最大数为0111111111111111 就是2的15次方减1
再加1 符号位变为1 就成负数了
第2个回答  2012-07-24
这是由于语言定义整数存储位数决定的。
第3个回答  2012-07-24
0111111111111111 这是int型最大的正数。。。把这个数再加一就是2的15次方了。所以要减一。本回答被提问者采纳