计算机中为什么用补码来表示数字

数字的加减乘除等计算是计算机的基本功能。数字有正负之分,所以我们需且仅需一个符号位来区分他们。我们定义最高位是0表示正数,最高位是1表示负数。这样在八位数字系统中,除去最高位用来表示正负,还有七位可以用来表示数的绝对值。

首先我们定义正数的表达:最高位为0,剩余7位表示绝对值。正数的绝对值就是其本身,所以可以表示的范围是1--127.

然后定义0的表达:数学中0既可以是+0,也可以是-0,我们定义0的表达就是八个0即正零(00000000),如果定义负零,这样0就会有2两种表达形式。在不具有唯一性的情况下,会引起不必要的多余验证环节。所以我们只定义0用正零来唯一表示。

这里注意:正数和0的表示都是我们强行定义的。

在数字逻辑电路中,实现加法器和反向器是非常容易的。我们知道数字的减法是可以转化为加法的,例如 9-5,我们可以转换成9+(-5)的加法运算。按照我们的约定,负数要以1为开头进行表达,八位系统中的后七位要表达这个这个负数的绝对值。

我们可以直接用绝对值正数表达,则后七位对应的也就是1--127,这种表达方法也叫做原码。比如(-2)可以表示为 10000010)。但此时我们如果和+2(00000010)相加的话,得到的结果是10000100,按照原码表示这个值就等于 -4,实际结果应该是 0(00000000)。显然负数用原码表示是不合适的。既然2+(-2)的结果因该是0,我们必须对负数使用其它的表达方式,使得计算结果就是0(00000000)。

试想这种情况,我们的8位系统只表达正数,则表达的值范围是0--255(00000000-11111111),256相当于255+1,256就变成了进位1+00000000,我们看到后八位刚好全0。此时对于1--127的数字来说,他们对应的负值表达方式刚好是256减去他们的话,那相加以后的值刚好是进位j加上8个0,同时又满足最高位为1,正好是我们所定义的负数具有的形式。由此我们把负数的表达定义为 256减去负数绝对值,这种方式称之为补码。

当然我们还必须证明补码的完备性和补码加减的正确性,后续补齐。

展开阅读全文

页面更新:2024-03-16

标签:补码   数字   正数   绝对值   负数   正负   加法   高位   定义   计算机   系统

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight 2008-2024 All Rights Reserved. Powered By bs178.com 闽ICP备11008920号-3
闽公网安备35020302034844号

Top