整数主要有三种表示方法:原码、反码、补码,目前的计算机都采用补码表示方法。各种表示方法的定义如下:
举个例子,下面的表格展示了 -4 到 3 的三种表示方法:
三种编码方式对于整数是相同的,负数则是不同的。原码和反码的0有两种表示方法,补码中只有一种,因此,补码多出一个码用于表示-4。
计算机为什么选用补码表示整数呢?答案是使用补码,减法运算可以通过负数的加法运算来表示,处理器就不需要减法电路了。例如 B - A,可以通过加法运算 B + (-A) 来实现。
为什么补码能满足B-A通过B+(-A)来实现呢? B-A本质上就是B与A之间的距离,这就要求表示B(码)与A(码)之间的距离和B与A之间的距离是相同的。原码和反码因为各有两个码表示0,因此B(码)与A(码)之间的距离比B与A之间的距离大1,而补码就没有此问题。
我们用一套编码表示整数,只要这套编码的表现和十进制整数的表现一致即可。因此,我们可以用补码表示任意的整数区间,例如:[000,111]可以表示[-4,3]、[-2,5] 、[10,17] 、[0,7],只不过-4,3恰巧符合人类的习惯,被命名为有符号整数和无符号整数。
本文由博客一文多发平台 OpenWrite 发布!
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。