[转载] 计算机中的反码与反数
一、反码的定义
在任意进制中反码可以如下定义:
两个数码之和是最大数码,那么一个称为另一个的反码。
例如,十进制的(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这是一个负数,然后如此求其对码,最后添加“-”得到数值。
注:本文为转载文章,出处找不到了,当时将文章保存下来,现在共享给大家。