已知Java语言中int类型所能表示的最大整数为2147483647,请问以下代码执行结果是什么?

一部分人都会认为这段程序压根就无法通过编译,也有人认为,这段程序能够通过编译,但在运行时会抛出异常,但更多的人面对这道题目根本就无从下手。那么正确答案是什么呢?首先告诉大家,这段程序能够顺利通过编译,并且在运行时也不会出现异常,运行的结果是在控制台上输出了数字-2147483648!而-2147483648正好是Java语言中int类型所能表示的最小整数。
大家都知道:任何一个数字,存储到计算机当中,都是以二进制的形式进行存储的。在Java语言中,使用补码的形式来表示数字。那么补码是个什么东西呢?补码就是计算机用二进制的形式表示数字的一种规则。它的算法很简单:用最左边的一个二进制位表示数字的正负,0表示正数,1表示负数,我们把表示符号的这个二进制位叫做“符号位”,而剩余的二进制位表示数字本身。至于怎样用其余的二进制位表示数字,正数和负数略有区别。我们首先来说正数的情况。对于正数而言,直接用剩余二进制位表示这个数字就可以了。而对于负数而言,算法稍微复杂一点,分为两步:
一、用补码表示出这个数的绝对值,之后把每个位上的数字(连同符号位上的数字在内)按位取反,所谓按位取反就是如果这个位上原来是0,那么就变成1,如果原来这个位上原来是1,那么就变成0。
二、就是把这个取反以后的数字加上1,就得到了负数的补码表示结果。
java short类型占几个字节?
short类型占2个字节,16位。
字节:byte,用来计量存储容量的一种计量单位,位(bit)。
一个字节等于8位 1byte = 8bit。
java short类型
short 数据类型是 16 位、有符号的以二进制补码表示的整数
最小值是 -32768(-2^15);
最大值是 32767(2^15 - 1);
- short aa = (short)(Short.MAX_VALUE + 1);
- System.out.println(aa);//-32768
- short bb = (short)(Short.MIN_VALUE);
- System.out.print(bb);//-32768
最大值加1,溢出,结果为最小值 -32768
总结:int short的最大值加1,都变为了最小负值
Java 整数类型
Java各整数类型有固定的表数范围和字段长度,其不受操作系统的影响,以保证Java程序的可移植性。
Java语言的整形常量默认为int型,声明long型后面需加上l或者L,否则会出错
| 类型 | 占用存储空间 | 表数大小 |
|---|---|---|
| byte | 1字节 | -128-127 |
| short | 2字节 | -215~215-1 |
| int | 4字节 | -231~231-1 |
| long | 8字节 | -263~263-1 |