计算机以“补码”
形式存储数字,通过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