class Test4
{
public static void main(String args[]){
int max=Integer.MAX_VALUE;
System.out.println("整型最大值:"+max);
System.out.println("整型最大值+1:"+(max+1));
}
}得出的结果整型最大值:2147483647
整型最大值+1:-2147483648我写的public class Test4
{
public static void main (String args[]){
byte max=Byte.MAX_VALUE;
System.out.println("最大值:"+max);
System.out.println("最大值+1:"+(max+1));
}
}
得出的结果如下:最大值:127
最大值+1:128
其中,“最大值+1”=128,换算为二进制为:10000000,为什么不是显示的-128,求解释,谢谢大家!
1是int的 自动转了 无视我上面的贴
public class Test4 { public static void main(String args[]) {
byte max = Byte.MAX_VALUE;
System.out.println("最大值:" + max);
System.out.println("最大值+1:" + Byte.toString((byte) (max + 1)));
}
}
short i=10;
i=i+1;
i+=1;
byte 范围:-128~127 二进制:11111111~01111111
byte+1 因为1 是32位整型,所以是0000000000000001
byte的最大值:127,就是01111111
这样01111111+00000000 00000001=00000000 100000000
转换成二进制:128,明白?一般来说基本数据类型都是低位向高位转换,你掌握了java基本数据类型和计算机数据转换的基本原理,这个就不难理解了。