首先,jdk定义int占4字节===32位。 (以后的所有计算都以此为依据。 ) )
32比特只指jvm为了存储数据而被分配了32个网格的区域。
甜绿茶电脑用0和1存储着数据。
那么,在32个格中装满0或1的方法有2的32次方:
所以。 在这32个格子里。 或者32位空间可以识别十进制数字:
最小
0000000000000000最大
11111111111111111111111111111111
第一推算法:将二进制的最大数字(32个1 )变换为十进制,即4294967296
另一种推算法:既然有2的32次方种算法,十进制中最大的数就是2的32次方。 即4294967296;
很遗憾。 上面的计算没有符号。 也就是正数。 但是,在java中,int有正负。 因此,在32个方格中,有1个方格的标识占正负。
只有31个格子可以识别数值。
下图:
x 000000000000000000000000000000000 x用0 1标识正负。
最后一个int可以识别的最大/最小数字是2的31次方。 /-2147483648