java文件中
int max=0x7fffffff;
long lo=max+1;
System.out.println(lo);
lo=(max+1)*2;
System.out.println(lo);现问:第一个输出为什么会是-2147483648,第二个输出为什么会是0
thanks
int max=0x7fffffff;
long lo=max+1;
System.out.println(lo);
lo=(max+1)*2;
System.out.println(lo);现问:第一个输出为什么会是-2147483648,第二个输出为什么会是0
thanks
int a = 0x7fffffff;
int b = 0x80000000;
int c = 0xffffffff + 1;
int d = 0x80000000 * 2;
System.out.println(a);
System.out.println(b);
System.out.println(c);
System.out.println(d);2147483647
-2147483648
0
0
max+1为:1000 0000 0000 0000 0000 0000 0000 0000即-2147483648最高位为符号位...
*
其中1是 0000 0000 0000 0000 0000 0000 0000 0001
----------------------------------------
0000 0000 0000 0000 0000 0000 0000 0000故结果为0