我尝试将负值乘以-1,但本身得到的负值相同:
long longValue = Long.MAX_VALUE;
int i = (int) (longValue ^ (longValue >>> 32));
int a = i * -1;
//prints -2147483648
System.out.println(i);
//prints -2147483648
System.out.println(a);
在上面的代码中,i
和a
都打印一个负值。为什么a
没有分配正值?