原碼、反碼、補碼(Integer.MIN_VALUE、Integer.MAX_VALUE)

計算機以“補碼”形式存儲數字,通過ASCII表對應的數字存儲字符,通過GBK表對應的數字存儲文字。
原碼: 原始二進制位,最高位是符號位。

反碼:
(正數)反碼 = 原碼
(負數)反碼 = 符號位不變,其它位反轉

補碼:
(正數)補碼 = 反碼 = 原碼
(負數)補碼 = 反碼的符號位不變,其它位 +1

在這裏插入圖片描述
在這裏插入圖片描述
圖片來源:https://blog.csdn.net/it_is_me_a/article/details/90645501

原碼和反碼的範圍:-127 ~ 127
補碼的範圍: -128 ~ 127(人爲規定 10000000(補碼) = -128)




關於Integer.MAX_VALUE、Integer.MIN_VALUE
public final class Integer extends Number implements Comparable<Integer> {
    /**
     * A constant holding the minimum value an {@code int} can
     * have, -2<sup>31</sup>.
     */
    @Native public static final int   MIN_VALUE = 0x80000000;

    /**
     * A constant holding the maximum value an {@code int} can
     * have, 2<sup>31</sup>-1.
     */
    @Native public static final int   MAX_VALUE = 0x7fffffff;

MIN_VALUE 代表:- 2^31(1000_0000_0000_0000_0000_0000_0000_0000)
MAX_VALUE代表:2^31 (0111_1111_1111_1111_1111_1111_1111_1111)

MIN_VALUE == MAX_VALUE + 1

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章