计算机怎么表示整数类型
2017-08-06 本文已影响26人
要上班的斌哥
计算机采用二进制来表示整数,计算机的整数表示方法有Unsigned Integers 和 Signed Integers 之分。
Unsigned Integers 的表示
Unsigned Integers 的表示没有什么特别的,就是表示正整数,正常的十进制对应的二进制转换,正常的加减法遵循进位和借位的规则。
![](https://img.haomeiwen.com/i656644/1d4fded045217bf4.png)
Signed Integers 的表示
Signed Integers 的表示还是有点意思的,对于正整数来说,Signed Integers 的表示和 Unsigned Integers 的表示是一样的。Signed Integers 的表示方法中,最高位是符号位,用来表示正负的,对于正整数来说,最高位符号位为 0 ,对于负整数来说,最高位符号位为 1。
![](https://img.haomeiwen.com/i656644/82596e376430c42f.png)
Signed Integers 怎么表示 -1 和 0
从下图中可以看出,最高位表示正负,那么 0 会有 2 个表示方法。 - 1 的表示是 1001 。
![](https://img.haomeiwen.com/i656644/d6eacccfe8a71965.png)
按照上面的负数表示方法,我们的减法法则无法成立!所以这种方法不能用来表示负数
![](https://img.haomeiwen.com/i656644/9a6c78a20c039de4.png)
补码的表示方法
我们的前辈采用了补码方法来表示整数类型的负数。其中 ~x + 1 = x 。-1 的补码表示是 1111,所有负整数的最高位符号位仍然是 1 。
![](https://img.haomeiwen.com/i656644/94850397627aa75a.png)
补码的算术
算术运算采用正常的 进位和借位 处理
![](https://img.haomeiwen.com/i656644/8b422a173837c94b.png)
几个常见数字的 Unsigned 和 Signed 表示
![](https://img.haomeiwen.com/i656644/bd274953cdd7376a.png)
Signed 和 Unsigned 的表示范围
![](https://img.haomeiwen.com/i656644/af6c65ffb5a6554b.png)
![](https://img.haomeiwen.com/i656644/90edb6850c7d2f52.png)