你用sizeof(int)看它占了几个字节
32位机上,这个值是32,
2的32次方=4294967296(无符号),带符号再除以2,负数比正数多一个,-2147483648~+2147483647
Integer.MAX_VALUE::A constant holding the maximum value an int can have, 231-1. 计算出来就是2147483647。本机是64位的操作系统,也是这个值,估计是JVM为了兼容性而设置的。
在大多数现代编程语言中,int 是一个整数数据类型,其最大值取决于特定的语言和平台。
在 C/C++、Java、Python 等语言中,int 是有符号整数类型,其最大值通常是平台相关的。例如,在 32 位系统中,int 的最大值通常是 2147483647,而在 64 位系统中,int 的最大值可能会更大。
如果你是在询问某个特定编程语言或平台的 int 类型的最大值,请提供更多的上下文信息,以便我能够给出准确的答案。
unsigned
int
是无符号整型
而
int是有符号整型
在数据存储当中,对于有符号整形的最后一位作为符号位,0表示正数
1表示负数
对于负数的存放,计算机采用补码的方式(正数是源码(其实正数的补码就是源码))
负数补码也就是原数除符号位外依次求反然后再加1
1111
1111
1111
1111[补]
求原数只需再补一次即可
即符号位不变其他位依次求反之后再加1
1000
0000
0000
0001[原]
由此可以看出,原数是
-1
而无符号整型的最高位没有符号位,仍然代表数值,所以直接可以通过数制转换得到
1111
1111
1111
1111(2)=2^16-1(10)=65535(10)