我觉得这是一个非常有意思的问题,Math.abs(-2147483648)的返回值应该是什么? java计算结果 为什么没有得到正数结果呢? 首先我们先看下java区分整数正负的原理.在二进制的情况下,java使用0和1来代表正和负,最高位--左面第一位为1代表负数,最高位为0就代表正数.在32位的int二进制表示里,最高位是预留出来表示正负号的. 我们知道java 32位int的值域为(-2147483648,2147483647],转换成二进制如下: 最大值为:2147483647, 二进制…