计算机采用二进制来表示整数,计算机的整数表示方法有Unsigned Integers 和 Signed Integers 之分。
Unsigned Integers 的表示
Unsigned Integers 的表示没有什么特别的,就是表示正整数,正常的十进制对应的二进制转换,正常的加减法遵循进位和借位的规则。
Signed Integers 的表示
Signed Integers 的表示还是有点意思的,对于正整数来说,Signed Integers 的表示和 Unsigned Integers 的表示是一样的。Signed Integers 的表示方法中,最高位是符号位,用来表示正负的,对于正整数来说,最高位符号位为 0 ,对于负整数来说,最高位符号位为 1。
Signed Integers 怎么表示 -1 和 0
从下图中可以看出,最高位表示正负,那么 0 会有 2 个表示方法。 - 1 的表示是 1001 。
按照上面的负数表示方法,我们的减法法则无法成立!所以这种方法不能用来表示负数
补码的表示方法
我们的前辈采用了补码方法来表示整数类型的负数。其中 ~x + 1 = x 。-1 的补码表示是 1111,所有负整数的最高位符号位仍然是 1 。
补码的算术
算术运算采用正常的 进位和借位 处理