对负整数-2147483648取绝对值,得到-2147483648
Java中,有符号整数采用补码形式表示
补码:正数补码等于原码,负数补码最高符号位不变,其余位取反,然后+1
Integer的取值范围是-2^32(-2147483648) -- 2^32-1(2147483647)
-2147483648 的原码 11111111 11111111 11111111 11111111
-2147483648 的补码 10000000 00000000 00000000 00000001
对-2147483648取绝对值得到2147483648(发生溢出)
2147483648 的原码 11111111 11111111 11111111 11111111
2147483648 的补码 10000000 00000000 00000000 00000001
恰好2147483648的补码等于-2147483648的补码,故为负数
参考资料
Hollis 大神的《2023全新Java面试宝典课程,八股文学习资料》