搜索
首页 教育/科学 职业教育

谁能告诉我计算机的原码补码和反码的具体定义是什么?具体的概念或定义

谁能告诉我计算机的原码补码和反码的具体定义是什么?具体的概念或定义

全部回答

2018-12-30

0 0
    数在计算机中是以二进制形式表示的。数分为有符号数和无符号数。原码、反码、补码都是有符号定点数的表示方法。一个有符号定点数的最高位为符号位,0是正,1是副。以下都以8位整数为例,原码就是这个数本身的二进制形式。
  例如0000001 就是 11000001 就是-1 正数的反码和补码都是和原码相同。  负数的反码是将其原码除符号位之外的各位求反 [-3]反=[10000011]反=11111100 负数的补码是将其原码除符号位之外的各位求反之后在末位再加1。
  [-3]补=[10000011]补=11111101 一个数和它的补码是可逆的。为什么要设立补码呢?第一是为了能让计算机执行减法:[a-b]补=a补 (-b)补 第二个原因是为了统一正0和负0 正零:00000000 负零:10000000 这两个数其实都是0,但他们的原码却有不同的表示。
    但是他们的补码是一样的,都是00000000 特别注意,如果 1之后有进位的,要一直往前进位,包括符号位!(这和反码是不同的!) [10000000]补 =[10000000]反 1 =11111111 1 =(1)00000000 =00000000(最高位溢出了,符号位变成了0) 有人会问 10000000这个补码表示的哪个数的补码呢?其实这是一个规定,这个数表示的是-128 所以n位补码能表示的范围是 -2^(n-1)到2^(n-1)-1 比n位原码能表示的数多一个又例:1011 原码:01011 反码:01011 //正数时,反码=原码 补码:01011 //正数时,补码=原码 -1011 原码:11011 反码:10100 //负数时,反码为原码取反 补码:10101 //负数时,补码为原码取反+1 0.1101 原码:0。
    1101 反码:0。1101 //正数时,反码=原码 补码:0。1101 //正数时,补码=原码 -0.1101 原码:1。1101 反码:1。0010 //负数时,反码为原码取反 补码:1。
  0011 //负数时,补码为原码取反+1 在计算机内,定点数有3种表示法:原码、反码和补码所谓原码就是前面所介绍的二进制定点表示法,即最高位为符号位,“0”表示正,“1”表示负,其余位表示数值的大小。
    反码表示法规定:正数的反码与其原码相同;负数的反码是对其原码逐位取反,但符号位除外。补码表示法规定:正数的补码与其原码相同;负数的补码是在其反码的末位加1。

类似问题换一批

热点推荐

热度TOP

相关推荐
加载中...

热点搜索 换一换

教育/科学
职业教育
院校信息
升学入学
理工学科
出国/留学
人文学科
外语学习
学习帮助
K12
职业教育
职业教育
会计资格考试
职业培训
远程教育
自考
司法考试
公务员考试
举报
举报原因(必选):
取消确定举报