原码、反码、补码(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

发布了82 篇原创文章 · 获赞 86 · 访问量 17万+

猜你喜欢

转载自blog.csdn.net/carter_yu/article/details/100975631
今日推荐