首先,来看看in类型:
int类型的长度占32位,即4个字节(1字(word)=2字节(byte)=16位(bit)),取值范围为:-(2的31次方)到(2的31次方)-1,即-2147483648~2147483647
测试如下:
我们知道,计算机是采用二进制来存储数据的,intl类型的最大值在计算机里的存储为:01111111111111111111111111111111(32)
最高位表示符号位,0表示正数,1表示负数,这里在用Integer.toBinaryString(n);转二进制输出后把0省略掉了。那么再转回十进制,就相当于计算等比数列2^(n-1)的前n项和,这里n=31,最终结果为(2的31次方)-1。
int类型的最小值的二进制为:10000000000000000000000000000000(32)
转为十进制就为 -(2的31次方)
类型 *******长度 ******* 取值范围
byte *******8位 ****** -128 ~ 127
short ******16位 ****** -32768 ~ 32767
int *********32位 ****** -2147483648 ~ 2147483647
long *******64位 ****** -9223372036854775808 ~ 9223372036854775807
char *******16位 ****** 0 ~ 65535