广告
AD
关于   小悟志   栏目   标签   文章   归档   友链

   云上小悟  +  

当前位置 : 首页 » InfoTech » 原码,反码,移码 正文

原码,反码,移码

InfoTech / by: 麦新杰 / 发布:2017年5月23日 / 3次阅读 / 暂无评论
标签:计算机   / 最后修改时间: 2017-05-23 15:54:45

InfoTech / 2017年5月23日 / 3次阅读 / 标签:计算机  

拍拍贷
featured image

原码:

计算机数值数据的原码表示中,正数和负数的编码,只有符号位不同,数值部分完全相同。

原码表示的有点是与真值的对应关系直观方便,因此与真值的转换简单,并且用原码实现乘除运算比较简便。

原码的缺点是:

1, 0的表示不唯一,有+0和-0;

2, 原码加减运算规则复杂;在进行原码加减运算过程中,要判定是否是两个异号数相加或两个同号数相减,若是,则必须判定两个数的绝对值大小,根据判断结果决定结果的符号,并用绝对值大的数减去绝对值小的数。

现代计算机中不用原码来表示整数,只用其表示浮点数的尾数部分。

 

反码:

负数的补码可采用“各位求反,末尾加1”的方法得到,如果仅各位求反而末尾不加1,那么就可以得到负数的反码表示,因此负数的反码的定义就是在相应的补码表示中再末尾减1.

正数的反码就是其本身(正数的原码,补码,反码全都一样)

反码表示存在几个不足:

1, 0的表示不唯一;

2, 表示范围比补码少一个最小负数;

3, 运算时必须考虑循环进位。

因此,反码在计算机中很少被使用,有时用作数码变换的中间表示形式。

 

移码:

一般情况下,浮点数的阶码使用一种称之为“移码”的编码方式表示。

为什么要用移码表示阶码呢?

因为阶码E可以是正数,也可以是负数,当进行浮点数的加减运算时,必须先“对阶”(即比较两个浮点数阶码的大小)。为了简化比较操作,使操作过程不涉及阶码的符号,可以对每个阶码都加上一个正的常数(在补码的基础上加),成为偏置常数(bias),使所有阶码都转换为正常数,这样,在对浮点数的阶码进行比较的时候,就是对两个正常数进行比较,因而可以直观地将两个数按位从左到右进行比对,简化了“对阶”的操作。

移码的偏置定义为:\(2^{n-1}\)

(对于n个bit为的数,\(2^{n-1}\)表示在最高位置1,\(2^n\)表示补码中的模)

这个偏置的定义,相当于将整数的最小负数在加上偏置之后,得到0。也即,所有的负数都变成了0和正数。整数加上偏置,为啥还是正数?因为系统在比较的时候,已经把加上偏置的数按照无符号编码来进行比较,不再有符号位了。

\([-2^{n-1}]_{移}=00...0\)

0的移码表示唯一,因为0的补码也是唯一的。

移码和补码,仅符号位不同。

 

推荐阅读:补码,模运算和溢出

-- (*^-^*) --

本文链接:http://www.maixj.net/ict/yuanma-fanma-yima-15421
云上小悟 麦新杰(QQ:1093023102)

《原码,反码,移码》暂无评论

电子邮件地址不会被公开。 必填项已用*标注


前一篇:
后一篇:

云上小悟独立博客网站文章内容,除非特别注明,全部都是原创(非原创请阅读本站版权声明),如需转载,请保留文章链接!原创文章更具个性,有些文字虽略显随意,但不影响个人思想表达。部分文章是我自己的笔记,为自己记录,总结和收藏,同时也分享给您!这是本博建设的出发点,希望您喜欢并得到您的支持!

©Copyright 麦新杰 Since 2014 云上小悟独立博客版权所有  备案号:苏ICP备14045477号-1  economists.cn的备案号:苏ICP备14045477号-3    联系我们

云上小悟,麦新杰的独立博客