原码、补码、反码

作者&投稿:刁蒋 (若有异议请与网页底部的电邮联系)
原码,反码,补码,是什么?~

对于一个数, 计算机要使用一定的编码方式进行存储。 原码, 反码, 补码是计算机存储一个具体数字的编码方式。

计算机中:数值的符号用一个数的最高位作为符号位,0代表正数,1代表负数。

计算机中使用的连同符号位一起数字化了的数称为机器数。因为第一位是符号位,所以机器数的形式值就不等于真正的数值。所以将带符号位的机器数对应的真正数值称为机器数的真值。

而原码就是符号位加上真值的绝对值, 即用第一位表示符号, 其余位表示值。

反码的表示方法是:正数的反码是其本身;负数的反码是在其原码的基础上,符号位不变,其余各位取反。

补码的表示方法是:正数的补码就是其本身;负数的补码是在其原码的基础上,符号位不变,其余各位取反,最后+1。(即在反码的基础上+1)

在计算机中,正数是直接用原码表示,负数用补码表示。

补码还原成真值的过程为:补码—>原码—>真值        [ X ] 原码   =   [ [ X ] 补码 ] 补码

若补码符号位为1,将其后的数值位按位取反加1,结果为真值且为负。

首先,根据运算法则减去一个正数等于加上一个负数, 即: 1-1 = 1+(-1), 所以计算机被设计成只有加法而没有减法, 而让计算机辨别“符号位”会让计算机的基础电路设计变得十分复杂,于是就让符号位也参与运算,从而产生了反码。

用反码计算, 出现了“0”这个特殊的数值,0带符号是没有任何意义的。而且会有[0000 0000]和[1000 0000]两个编码表示0。于是设计了补码,负数的补码就是反码+1,正数的补码就是正数本身,从而解决了0的符号以及两个编码的问题:用[0000 0000]表示0,用[1000 0000]表示-128。

注意到:-128实际上是使用以前的-0的补码来表示的,所以-128并没有原码和反码。使用补码,不仅仅修复了0的符号以及存在两个编码的问题,而且还能够多表示一个最低数。这就是为什么8位二进制,使用补码表示的范围为[-128, 127]。

计算机中,并没有原码和反码,只是使用补码,代表正负数。

使用补码的意义:可以把减法或负数,转换为加法运算。从而简化计算机的硬件。

------------

比如钟表,时针转一圈,周期是 12 小时。

倒拨 3 小时,可以用正拨 9 小时代替。

9,就称为-3 的补数。

计算方法:12-3 = 9。

对于分针,倒拨 X 分,就可以用正拨 60-X 代替。

------------

如果,限定了两位十进制数 (0~99),周期就是 100。

那么,减一,就可以用 +99 代替。

  24-1 = 23

  24 + 99 = (1) 23

忽略进位,只取两位数,这两种算法,结果就是相同的。

于是,99 就是 -1 的补数。

其它负数的补数,大家可以自己求!

求出了负数的补数,就可用加法,代替减法了。

------------

计算机中使用二进制,补数,就改称为【补码】。

常用的八位二进制是:0000 0000~1111 1111。

它们代表了十进制:0~255,周期就是 256。

那么,-1,就可以用 255 = 1111 1111 代替。

所以:-1 的补码,就是 1111 1111 = 255。

同理:-2 的补码,就是 1111 1110 = 254。

继续:-3 的补码,就是 1111 1101 = 253。

。。。

最后:-128,补码是 1000 0000 = 128。

计算公式:负数的补码=256+这个负数。

正数,直接运算即可,不需要求补码。

   也可以说,正数本身就是补码。

------------

补码的应用如: 7-3 = 4。

用补码的计算过程如下:

    7 的补码=0000 0111

   -3的补码=1111 1101

--相加-------------

   得:  (1) 0000 0100 = 4 的补码

舍弃进位,只保留八位,作为结果即可。

这就是:使用补码,加法就代替了减法。

所以,在计算机中,有一个加法器,就够用了。

原码和反码,都没有这种功能。

------------

原码和反码,毫无用处。计算机中,根本就没有它们。

在计算机中,原码和反码,都是不存在的。

数值,在计算机系统中,一律采用补码表示和存储。

你只要掌握“数值与补码”的互换,就可以了。

原码反码,都是干什么的呢?

老外数学不好,才需要弄哪些个骚操作。




原码,反码,补码和移码: 原码:1001101,反码,补码,移码各是多少?_百度知 ...
补码:1,110011(除符号位以外,各位取反,末位加一)移码:0,110011(对补码符号位取反)注意:1、首先判断原码的正负,因为对于正数,其原码、补码反码表示形式相同(符号位为0,数值部分与真值相同)2、对于反码和补码,要区别:已知[x补],求[-x补]的题目(连同符号位各位取反,末位加一)...

原码、补码、反码
这三种都是对计算机中数字的二进制的表现方法。 字节型数据,占8位,那么它的原码、反码、补码都是8位。字节型数据只有8位,只能表示0~255。 字型数据,占16位,那么它的原码、反码、补码都是16位。字型数据占16位,可以表示0~65535。 负数在计算机中以补码的形式存在! 三者的规制:...

深入浅出:原码,反码,补码及减法
那么什么是取反,0变成1,1变成0就是取码了。举个例子,-1,原码是:10000001 第一步,除最高位取反,得到:11111110 第二步,加1:11111111 最后-1的补码即为:11111111 对了,在转换补码的过程中,还有步骤:取反。取反得出来的数,称为反码。5.什么是反码 反码是一种在计算机中数的机器码...

原码,补码,反码是什么?
在计算机系统中,数值,一律采用补码表示和存储。这就是说,计算机中,并没有原码和反码。原码和反码,只是在求补码时,表现一下存在感而已。但是,求补码,还有更正规的方法,完全可以不经过原码反码,就求出补码。由补码,再求其代表的数值,也可以不用原码反码。那么,就可以说,原码和反码,都没有...

原码,反码,补码,是什么?
带符号数,有三种表示方法,即:原码、反码和补码。但是,在计算机系统中,数值一律用【补码】来表示和存储。所以,在计算机系统中,原码和反码,都是不存在的。使用补码的意义:可以把减法或负数,转换为加法运算。因此,就能简化计算机的硬件。=== 补码的概念,来自于:补数。比如钟表,时针转一圈...

正数的原码,补码,反码是什么?
(二)对于二进制原码10010求反码:((10010)原)反=对正数(00010)原含符号位取反= 反码11101 (10010,1为符号码,故为负)(11101) 二进制= -2 十进制 (三)对于八进制:举例 某linux平台设置了默认的目录权限为755(rwxr-xr-x),八进制表示为0755,那么,umask是权限位755的反码,计算得到...

原码、补码、反码、移码的转换
1011 原码:01011 反码:01011 \/\/正数时,反码=原码 补码:01011 \/\/正数时,补码=原码 移码:11011 \/\/原数+10000 -1011 原码:11011 反码:10100 \/\/负数时,反码为原码取反 补码:10101 \/\/负数时,补码为原码取反+1 移码:00101 \/\/原数+10000 0.1101 原码:0.1101 反码:0....

什么是原码 补码 反码
-16的补码 11110101 -11的补码 ———111100101 -27的补码 在字长为8位的系统中,最高位所产生的进位被自然丢弃,运算结果的机器数为11100101,是-27的补码形式,结果正确.顺便告诉你一些其它的东西:1.二进制数中,两数的补码之和等于两数和的补码.2.补码=反码+1 3.反码=原码除符号位外其它数值取...

一文搞懂原码、反码、补码
最高位为符号位,0代表正数,1代表负数,非符号位为该数字绝对值的二进制表示。如:127的原码为0111 1111 -127的原码为1111 1111 正数的反码与原码一致;负数的反码是对原码按位取反,只是 最高位(符号位)不变 。如:127的反码为0111 1111 -127的反码为1000 0000 正数的补码与原码一致;...

计算机组成原理:原码,补码,反码,移码之间的关系?
计算机中,没有原码和反码。计算机中,只有补码和移码。移码,只在特殊场合才用。补码,是用正数,代替负数进行运算。比如,两位十进制数,-1 就可以用 +99 代替。25-1 = 24 25 + 99 = (1) 24 只取两位,这两种运算的结果,是完全相同的。-1 的补数,就是 99。--- 计算机所计算的...

霍邱县13938516330: 原码,反码和补码表示的规则分别是什么 -
席禄加奇: 数在计算机中是以二进制形式表示的. 数分为有符号数和无符号数. 原码、反码、补码都是有符号定点数的表示方法. 一个有符号定点数的最高位为符号位,0是正,1是副. 以下都以8位整数为例, 原码就是这个数本身的二进制形式. 例如 ...

霍邱县13938516330: 原码、反码、补码之间的关系 -
席禄加奇:[答案] 给你举个例子吧:二进制,原码(101011),反码(010100),反码是相对与原码而言的,逐位取反;十进制,原码6,补码4,补码和进制相关,6+4=10,所以说4和6互为补码

霍邱县13938516330: 原码 补码 反码 之间有什么关系 -
席禄加奇: 原码、反码、补码 1、 表示一个数值要先说明是用多少bit,例如: 用8bit表示数值时,(-128)没有相对应的原码和反码, (-128)补码 = (1000 0000) 同理(2B=16bit)表示:(-32768)补码=(1000 0000 0000 0000),后面回给出证明...

霍邱县13938516330: 原码,反码,补码的定义是什么.最好能举例说明呵呵! -
席禄加奇:[答案] 原码: 在数值前直接加一符号位的表示法.对于8位二进制来说: [+7]原= 0 0000111 [-7]原= 1 0000111 反码: 正数的反码与原码相同. 负数的反码,符号位为“1”,数值部分按位取反. [+7]反= 0 0000111 [-7]反= 1 1111000 补码: 正数的补码和原码...

霍邱县13938516330: 正负数的原码、反码和补码的区别 -
席禄加奇: 正数的原码,反码,补码都是一样的. 负数的原码你应该知道的,就是带符号位的二进制数.反码,符号位不变为1,其他每位二进制数取反,1变0,0变1.补码就是在反码的基础上,符号位不变,最低位加1,得到补码.这里有个简单的求补码的方法,从原码的最低位向最高位看去,遇到第一个1前,保持不变,第一个1前面的二进制串取反(符号位保持不变). 下面是一个例子. x=1011 0110 这是一个负数,它的原码,反码,补码分别是:1011 0110,1100 1001,1100 1010 用上面的那个简单的方法就可以一步写出来了. 有关更详细的原理,可以交流一下.

霍邱县13938516330: 原码,反码,补码是什么?例如:78的二进制数是01001110.那它的原码,补码,反码各是什么? -
席禄加奇:[答案] 正数的原码,补码,反码相同,先求原码,因为正数的原码就是他的真值. 负数的原码是在正数的原码基础上,最高位置1,即符号位.然后再求反码:符号位1不变,后面的所有位取反,然后再求补码:在反码的基础上,末尾加1 .注意负数的反码,补...

霍邱县13938516330: 原码反码补码 -
席禄加奇: (1)原码表示法原码表示法是机器数的一种简单的表示法.其符号位用0表示正号,用:表示负号,数值一般用二进制形式表示.设有一数为x,则原码表示可记作[x]原.例如,X1= +1010110X2= 一1001010其原码记作:[X1]原=[+1010110]...

霍邱县13938516330: 原码,反码和补码之间有怎样的计算关系? -
席禄加奇:[答案] 原码 正数的符号位为0,负数的符号位为1,其它位按照一般的方法来表示数的绝对值.用这样的表示方法得到的就是数的原码. 反码 对于一个带符号的数来说,正数的反码与其原码相同,负数的反码为其原码除符号位以外的各位按位取反. 补码 正数的...

霍邱县13938516330: 计算机组成原理:原码,补码,反码,移码之间的关系? -
席禄加奇: 所谓原码就是二进制定点表示法,即最高位为符号位,“0”表示正,“1”表示负,其余位表示数值的大小. 反码表示法规定:正数的反码与其原码相同;负数的反码是对其原码逐位取反,但符号位除外. 补码表示法规定:正数的补码与其原码相同;负数的补码是在其反码的末位加1.

霍邱县13938516330: 原码、补码和反码的概念? -
席禄加奇:[答案] 数在计算机中是以二进制形式表示的. 数分为有符号数和无符号数. 原码、反码、补码都是有符号定点数的表示方法. 一个有符号定点数的最高位为符号位,0是正,1是副. 以下都以8位整数为例, 原码就是这个数本身的二进制形...

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网