32位最大值为什么是2^31-1
计算机里面是用补码表示数字,因为要区分正负,用最高位来区分,0位正,1为负。
剩下2^31, 除去0就是(2^31)-1
另外1开头是负数,范围就是 -2^31 到 +(2^31)-1
int_max二进制如下,首位的0为符号位
0111 1111 1111 1111 1111 1111 1111 1111
如果int_max+1,则会得到
1000 0000 0000 0000 0000 0000 0000 0000
但由于负数是用补码存储,所以它实际上的值是int能表示的最小值
更多思路参考:https://www.zhihu.com/question/612717969
标签:0000,二进制,31,C语言,1111,int From: https://www.cnblogs.com/yuyanc/p/17739717.html