关于Integer.MAX_VALUE + 1 = Integer.MIN_VALUE 问题
生活随笔
收集整理的這篇文章主要介紹了
关于Integer.MAX_VALUE + 1 = Integer.MIN_VALUE 问题
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1、負數二進制表示
由于計算機中數據都以二進制表示,而負數的二級制是根據正數二進制取補碼(補碼就是先取反碼,然后加1)得到,如:
一個int 類型的數值為5,其長度為32位,二進制表示為
00000000 00000000 00000000 00000101-5是根據5的二進制表示每一位先取反碼(0變1,1變0)得到
11111111 11111111 11111111 11111010再對反碼加1,得到-5的二進制表示
11111111 11111111 11111111 111110112、Integer.MAX_VALUE+1 = Integer.MIN_VALUE與Integer.MIN_VALUE-1 = Integer.MAX_VALUE
Integer.MAX_VALUE: 01111111 11111111 11111111 111111111: 00000000 00000000 00000000 00000001相加: 10000000 00000000 00000000 00000000 Integer.MIN_VALUE: 10000000 00000000 00000000 00000000可以看出Integer.MAX_VALUE+1結果等于 Integer.MIN_VALUE
Integer.MIN_VALUE: 10000000 00000000 00000000 00000000-1: 11111111 11111111 11111111 11111111相加: 1 01111111 11111111 11111111 11111111 Integer.MAX_VALUE: 01111111 11111111 11111111 11111111可以看出Integer.MIN_VALUE+1結果將多余位舍去即等于 Integer.MAX_VALUE
3、參考
https://blog.csdn.net/han1558249222/article/details/55218193
https://blog.csdn.net/weixin_30374009/article/details/95705335
與50位技術專家面對面20年技術見證,附贈技術全景圖總結
以上是生活随笔為你收集整理的关于Integer.MAX_VALUE + 1 = Integer.MIN_VALUE 问题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: String的concat方法与join
- 下一篇: java枚举类使用 == 还是equal