天下

记录修行的印记

原码、反码、补码 复习

原码、反码、补码
计算机通常用补码表示整数

公式:负数(x)
(x)原码+(x)补码=0,进位丢弃.


为了简单起见,我们用1个字节来表示一个整数。

原码
将最高位作为符号位(以0代表正,1代表负),其余各位代表数值本身的绝对值(以二进制表示)。
     +7的原码为: 00000111
     -7的原码为: 10000111
问题:
     +0的原码为:00000000
     -0的原码为: 10000000
    
    
反码:
一个数如果为正,则它的反码与原码相同;一个数如果为负,则符号位为1,其余各位是对原码取反。
     +7的反码为:00000111
     -7的反码为: 11111000
问题:
     +0的反码为:00000000
     -0的反码为:11111111
    
补码:
一个数如果为正,则它的原码、反码、补码相同;
一个数如果为负,则符号位为1,其余各位是对原码取反,然后整个数加1。

+7的补码为:00000111
-7的补码为:
第一步:由-7原码得到-7的反码,得到11111000,第二步,反码+1=11111001

即负数补码公式:
补码=反码+1


问题:0的补码表示:
+0的补码: 00000000

-0的补码:
第一步:得到-0(10000000)的反码:11111111
第二步:反码(11111111)+1 = 1 00000000
第三步:进位1被丢弃

对于有模运算来讲,减一个数等于加上该数对模的补数。补码就是按补数概念对数据进行编码的。计算机引入补码后,减法可转换为加法,方便运算

 

posted on 2011-11-14 17:57 天下 阅读(381) 评论(0)  编辑 收藏 引用 所属分类: C/C++汇编语言


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理


<2010年11月>
31123456
78910111213
14151617181920
21222324252627
2829301234
567891011

导航

统计

常用链接

留言簿(4)

随笔分类(378)

随笔档案(329)

链接

最新随笔

搜索

最新评论