Integer.MIN_VALUE和Integer.MAX_VALUE

Integer.MIN_VALUE,即-2147483648,二进制位如下:

1000 0000 0000 0000 0000 0000 0000 0000


在计算机的运算中,“-”(前缀)运算表示各二制位取反再加1,也就是说 b = -a 在计算机内部是 b = ~a + 1 这样处理的,所以上面的位就变成了:

1000 0000 0000 0000 0000 0000 0000 0000 Integer.MIN_VALUE

取反 0111 1111 1111 1111 1111 1111 1111 1111 (取反之后变成了Integer.MAX_VALUE)

加1 1000 0000 0000 0000 0000 0000 0000 0000 -Integer.MIN_VALUE(与原来的结果一样)

 

posted @ 2020-04-20 17:27  手下留情  阅读(989)  评论(0编辑  收藏  举报