計算機以“補碼”
形式存儲數字,通過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