问题 :Math.abs(-2147483648)=-2147483648
首先要明白,计算机取反操作是 补码取反+1(包含符号位),不含符号位的是恢复原码
-2147483648的补码如下
补:1000 0000 0000 0000 0000 0000 0000 0000
补反:0111 1111 1111 1111 1111 1111 1111 1111
+1: 1000 0000 0000 0000 0000 0000 0000 0000
由此可知:
-2147483648在进行取反操作时,得到的还是-2147483648,所以出现Math.abs(-2147483648)=-2147483648就见怪不怪了