CMP设计分享 http://blog.sciencenet.cn/u/accsys 没有逆向思维就没有科技原创。 不自信是科技创新的大敌。

博文

计算机中的反码与反数

已有 6322 次阅读 2010-6-29 10:28 |个人分类:教学笔记|系统分类:科研笔记| 限位数, 机器计算, 加减法

                                                                       姜咏江
 
一、反码的定义
 
在任意进制中反码可以如下定义:
 
两个数码之和是最大数码,那么一个称为另一个的反码
 
例如,十进制的(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这是一个负数,然后如此求其对码,最后添加“-”得到数值。
 
2010-6-29
 


https://wap.sciencenet.cn/blog-340399-339752.html

上一篇:如何快速读出机器数的正负值
下一篇:如何判断机器数的大小
收藏 IP: .*| 热度|

2 唐常杰 intowin

发表评论 评论 (1 个评论)

数据加载中...
扫一扫,分享此博文

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-12-22 19:37

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部