[转载] 计算机中的反码与反数

  

 

一、反码的定义

 

在任意进制中反码可以如下定义:

 

两个数码之和是最大数码,那么一个称为另一个的反码

 

例如,十进制的(0,9)(1,8)(2,7)(3,6)(4,5);二进制的(0,1);五进制的(0,4)(1,3)(2,2)等。

 

二、反数的定义

 

利用反码,进而可以定义反数:

 

将一个数的全部数码用其反码替换得到的数叫原数的反数

 

例如,十进制的56023的反数是43976;二进制的10100的反数是01011;五进制43021的反数是01423。

 

注意,反数不是相反数的。相反数是正负数意义下的概念,而反数是数码对称调换的概念。

 

有人也许要问:“反数有什么用?”

 

反数在计算机变减法运算为加法运算的设计中有着重要的应用。利用反数可以避开做减法得到负数的机器数表示(请参阅四)。

 

三、反数的性质

 

反数有什么性质呢? 固定位数的数叫限位数。

 

限位数中,两个反数之和是最大数

 

因为位数固定的限位数中,每一位数码都是最大数码的数是最大的,根据反数的定义,立即可以得到这个反数的性质。

 

四、对码

 

限位数总数一定。例如3位十进制就有1000个数。两个限位数之和为总数(限数),一个叫另一个的对码对码小的表示正数,大的表示小的相反数,这是对称制。例如,821表示的是179的相反数(而179=1000-821)。

 

五、用反数求对码

 

在对称制中,规定负数用其相反数的对码在机器中表示。例如,3位十进制数821表示的是-179,用821求对码179就可以用“求反加一”来完成:821 的反数是178,再加1,则为179。我们要读821 的值,先认定821这是一个负数,然后如此求其对码,最后添加“-”得到数值。

 

注:本文为转载文章,出处找不到了,当时将文章保存下来,现在共享给大家。

posted @ 2013-08-06 00:13  熟如陌路  阅读(955)  评论(0编辑  收藏  举报