计算机:内存!给数据增加数据宽度。 C 和 C++ Java都需要定于数据的类型。计算机底层需要我们给这些数据定义宽度。 位 0 1 二进制: 0 1111 0 1 10 11 100 101 110 111 1000 1001 1010 1011 1100 1101 1110 1111 121 0 1 2 3 4 5 6 7 8 9 a b c d e f 字节 0~0xFF 字 0~0xFFFF 双字 0~0xFFFFFFF 在计算机中,每一个数据都需要给它定义类型。给它定义宽度。在内存中的宽度。
最高位是符号位:1 (负数) 0(正数) 原码反码补码 编码规则 有符号数的编码规则 原码: 最高位符号位,对齐它的为进行本身绝对值即可。 反码: a.正数:反码和原码相同 b.负数:符号位一定是1,其余位对原码取反。 补码: a.正数:补码和原码相同 b.负数:符号位一定是1,反码+1
测试 现在我说的这些都是 8 位 如果是正数,那都是一样的。 1 原码 0 0 0 0 0 0 0 1 反码 0 0 0 0 0 0 0 1 补码 0 0 0 0 0 0 0 1 现在我说的这些都是 8 位 如果是负数 -1 原码 1 0 0 0 0 0 0 1 反码 1 1 1 1 1 1 1 0 补码 1 1 1 1 1 1 1 1 -7 原码 1 0 0 0 0 1 1 1 反码 1 1 1 1 1 0 0 0 补码 1 1 1 1 1 0 0 1
3+5=? = 11 + 101 = 1000 十进制:1 2 3 4 5 二进制 1 10 11 100 101