计算机原码反码补码怎么算

作者&投稿:潭卿 (若有异议请与网页底部的电邮联系)
计算机原码补码的计算~

计算机原码补码的计算方法:
1、原码:在计算机中的机器字长的最高位(最左边)表示正负,0为正数,1为负数,原码就是最高位是符号位,其余位表示数值(绝对值)大小。
2、反码:正数的反码就是其本身(原码)不变,而负数的反码就是在负数原码的基础上符号位保持不变,其余位按位取反。
3、补码:正数的补码就是其本身(原码),而负数的补码就是在原码的基础上符号位保持不变其余位按位取反,然后再+1,即在反码的基础上+1。
总结:正数的原码、反码和补码都一样,都等于原码。负数的反码就是在原码的基础上符号位不变其余位按位取反,负数的补码就是在反码的基础上+1。


扩展资料:
原码(true form)是一种计算机中对数字的二进制定点表示方法。原码表示法在数值前面增加了一位符号位(即最高位为符号位):正数该位为0,负数该位为1(0有两种表示:+0和-0),其余位表示数值的大小。
原码不能直接参加运算,可能会出错。例如数学上,1+(-1)=0,而在二进制中00000001+10000001=10000010,换算成十进制为-2。显然出错了。所以原码的符号位不能直接参与运算,必须和其他位分开,这就增加了硬件的开销和复杂性。
在计算机系统中,数值一律用补码来表示和存储。原因在于,使用补码,可以将符号位和数值域统一处理;同时,加法和减法也可以统一处理。
补码“模”概念的引入、负数补码的实质、以及补码和真值之间的关系所揭示的补码符号位所具有的数学特征,无不体现了补码在计算机中表示数值型数据的优势,和原码、反码等相比可表现在如下方面:
(1)解决了符号的表示的问题;
(2)可以将减法运算转化为补码的加法运算来实现,克服了原码加减法运算繁杂的弊端,可有效简化运算器的设计;
(3)在计算机中,利用电子器件的特点实现补码和真值、原码之间的相互转换,非常容易;
(4)补码表示统一了符号位和数值位,使得符号位可以和数值位一起直接参与运算,这也为后面设计乘法器除法器等运算器件提供了极大的方便。
参考资料:百度百科-原码、百度百科-补码

计算机中的存储系统都是用2进制储存的,对我们输入的每一个信息它都会自动转变成二进制的形式,而二进制在存储的时候就会用到原码,反码和补码
例如:输入25
原码就是:0000000000011001
反码: 1111111111100110
补码: 1111111111100111

数值在计算机中表示形式为机器数,计算机只能识别0和1,使用的是二进制,而在日常生活中人们使用的是十进制,"正如亚里士多德早就指出的那样,今天十进制的广泛采用,只不过我们绝大多数人生来具有10个手指头这个解剖学事实的结果.尽管在历史上手指计数(5,10进制)的实践要比二或三进制计数出现的晚. "(摘自>有空大家可以看看哦~,很有意思的).为了能方便的与二进制转换,就使用了十六进制(2 4)和八进制(23).下面进入正题.

数值有正负之分,计算机就用一个数的最高位存放符号(0为正,1为负).这就是机器数的原码了.假设机器能处理的位数为8.即字长为1byte,原码能表示数值的范围为

(-127~-0 +0~127)共256个.

有了数值的表示方法就可以对数进行算术运算.但是很快就发现用带符号位的原码进行乘除运算时结果正确,而在加减运算的时候就出现了问题,如下: 假设字长为8bits

( 1 ) 10- ( 1 )10 = ( 1 )10 + ( -1 )10 = ( 0 )10

(00000001)原 + (10000001)原 = (10000010)原 = ( -2 ) 显然不正确.

因为在两个整数的加法运算中是没有问题的,于是就发现问题出现在带符号位的负数身上,对除符号位外的其余各位逐位取反就产生了反码.反码的取值空间和原码相同且一一对应. 下面是反码的减法运算:

( 1 )10 - ( 1 ) 10= ( 1 ) 10+ ( -1 ) 10= ( 0 )10

(00000001) 反+ (11111110)反 = (11111111)反 = ( -0 ) 有问题.

( 1 )10 - ( 2)10 = ( 1 )10 + ( -2 )10 = ( -1 )10

(00000001) 反+ (11111101)反 = (11111110)反 = ( -1 ) 正确

问题出现在(+0)和(-0)上,在人们的计算概念中零是没有正负之分的.(印度人首先将零作为标记并放入运算之中,包含有零号的印度数学和十进制计数对人类文明的贡献极大).

于是就引入了补码概念. 负数的补码就是对反码加一,而正数不变,正数的原码反码补码是一样的.在补码中用(-128)代替了(-0),所以补码的表示范围为:

(-128~0~127)共256个.

注意:(-128)没有相对应的原码和反码, (-128) = (10000000) 补码的加减运算如下:

( 1 ) 10- ( 1 ) 10= ( 1 )10 + ( -1 )10 = ( 0 )10

(00000001)补 + (11111111)补 = (00000000)补 = ( 0 ) 正确

( 1 ) 10- ( 2) 10= ( 1 )10 + ( -2 )10 = ( -1 )10

(00000001) 补+ (11111110) 补= (11111111)补 = ( -1 ) 正确

所以补码的设计目的是:

⑴使符号位能与有效值部分一起参加运算,从而简化运算规则.

⑵使减法运算转换为加法运算,进一步简化计算机中运算器的线路设计

所有这些转换都是在计算机的最底层进行的,而在我们使用的汇编、C等其他高级语言中使用的都是原码

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

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

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

比如钟表,时针转一圈,周期是 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 的补码

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

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

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

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

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

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



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

只要会求补码,就够用了。

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

计算机,所计算的位数,是固定的。

八位机就是八位,16 位机就是 16。。。

位数,限定了之后,即使出现了进位,也不再考虑。

在这个前提下,加法、减法,就可以互换。

比如,两位十进制是 00~99。

周期是 100(即一百)。

减一,就和 +99,作用相同。

  25 - 1 = 24

  25 + 99 = (一百) 24

舍弃进位,加法,就能起“减法”的作用。

99,就是-1 的补数。

借助于补数,加减法,就可以统一为加法。

借助于补码,就可以简化计算机的硬件。

八位的二进制是:0000 0000~1111 1111(十进制255)。

周期是 2^8 = 256。

-1 的补码就是:256-1 = 255(二进制 1111 1111)。

-2 的补码就是:256-2 = 254(二进制 1111 1110)。

。。。

公式:

  负数的补码 = 周期 + 该负数。

零和正数,不存在补码,直接就可以参加计算。

补码,就是这么计算出来的。

补码,和原码反码,毫无关系。

计算机中,也并没有原码反码,因此,就不必讨论它们。




原码 反码 补码怎么转换
反码补码原码怎么转换,来看看方法吧。1、首先原始代码的最高位是符号位,0表示正,1表示负,中间值表示数字的绝对值。2、符号的反转,正数符号的反转与原符号相同,负数的补数是该符号的最低有效位数加上1。3、补数,正数的补数与原代码相同,负数的补数在其倒数第一的基础上加1。零分为+0和-0。

什么叫机器数、原码、反码、补码?
(即在反码的基础上+1)[-1]= [10000001]原 = [11111110]反 = [11111111]补 计算机中的存储系统都是用2进制储存的,对我们输入的每一个信息它都会自动转变成二进制的形式,而二进制在存储的时候就会用到原码,反码和补码例如:输入25原码是:0000000000011001反码:1111111111100110 补码:1111111111100111 ...

原码反码补码计算公式及关系
原码反码补码计算公式及关系如下:原码:二进制数的最高位表示符号位,0表示正数,1表示负数,其余位表示数值大小。反码:正数的反码与原码相同,负数的反码是对其原码除符号位外的各位取反。补码:正数的补码与原码相同,负数的补码是对其反码加1。计算公式:关系:原码、反码、补码之间的转换关系是固定的...

原码、补码、反码
而原码就是符号位加上真值的绝对值, 即用第一位表示符号, 其余位表示值。反码的表示方法是:正数的反码是其本身;负数的反码是在其原码的基础上,符号位不变,其余各位取反。补码的表示方法是:正数的补码就是其本身;负数的补码是在其原码的基础上,符号位不变,其余各位取反,最后+1。(即在...

什么是原码、反码、补码?
原码:正整数的原码:这个数的二进制,符号位为0;正整数的原码=补码=反码 例1:+66 66的二进制:1000010,所以+66的原码: 0 1000010 =补码: 0 1000010=反码: 0 1000010 负整数的原码:仍是这个数的二进制,符号位为1;负整数的原码、反码、补码计算:先求原码,再求反码,最后...

什么是原码 补码 反码
有符号数,有三种表示方法,即原码、反码和补码。在计算机系统中,数值一律用补码来表示和存储。在计算机系统中,原码和反码,都是不存在的。=== 数值 0,在八位机中,就是 0000 0000。+1,就是加上一,即为:0000 0001。+2,就再加上一,即为:0000 0010。其他正数,依次递增即可。。。

补码.原码.反码怎么运算的啊.详细一点
补码,是在计算机中,自然形成的,跟原码反码毫无关系。对于补码,应该直接用二进制来讨论,不要绕道并不存在的原码反码上去。以八位机来说明如下。数字 0,就是用八个位:0000 0000 来存放的。数字-1,就是用零的二进制,减去一,即:0000 0000-1 = (1) 1111 1111,仍存放八个位,就是 ...

计算机原码反码补码怎么计算
题目:-125 的八位补码,是什么?解:先确定首位。这是负数,首位应该是 1,且代表-128。其余数值位,就应该是 3,二进制是 11。写在一起,就是 1000 0011。=== 补码与数值,可以直接,互相换算。根本就用不着“原码反码取反加一。。。乱七八糟的”!老外数学不好,脑子太烂,才发明了这些...

原码、补码、反码之间是怎样转换的?
1、首先,数字除了我们平时最长使用的十进制数外,还有二进制,八进制,十六进制等。这里我们的原码,补码,反码之间转换指的是二进制数。如下。2、在二进制数中,数字的正负是根据首位是0还是1来判断的,如果首位是0,那么就是正数,首位是1就代表负数。如下图。3、从原码到反码,如果该数为正数,...

原码反码补码怎么表示
例如数+1011与-1011分别表示为:01011和11011。这种表示称为原码表示法。因此,原码就是保持二进制数原来的形式,再加上符号位的码。如+1001原码是01001,-1001的原码为11001,分别写为+1001原=01001,-1001原=11001。关于反码和补码应区分两种情况:(1)对于正数来说,其原码、反码和补码是相同的。例如正数...

武邑县15748788935: 一个数的原码,反码,补码怎么算啊? -
胥奖澜琪:[答案] 数在计算机中是以二进制形式表示的. 数分为有符号数和无符号数. 原码、反码、补码都是有符号定点数的表示方法. 一个有符号定点数的最高位为符号位,0是正,1是副. 以下都以8位整数为例, 原码就是这个数本身的二进制形...

武邑县15748788935: 和计算机有关的,反码,原码,补码!求它们的计算方法!望各位指教! -
胥奖澜琪: 原码就是一个n位二进制数,例如11110000B 反码把原码按位取反,00001111B 补码把反码加一,产生的最高位进位舍弃,00010000B 补码就是把反码加1 ,就可以了 反码0101010B的补码是0101011B

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

武邑县15748788935: 总结原码,反码和补码的表示方法和运算规则.为什么在计算机中大多采用补码 -
胥奖澜琪:[答案] (1)原码、反码、补码表示的简易记忆法:正数的原码、反码、补码相同正数符号位为0,负数符号位为1原码, 除符号位外的数值位与真值相同负数的反码 =原码(除符号位外)每位取反;负数的补码 = 反码 + 1; (2)运算...

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

武邑县15748788935: 真值与码值有何区别?原码、反码、补码三者之间如何换算? -
胥奖澜琪: 如果原码00000 反码就是11111 补码是反码(正数)反码+1(负数) 真值是一个变量本身所具有的真实值 码值就是个表

武邑县15748788935: 已知计算机的字长为8位,求十进制数的原码、反码和补码 -
胥奖澜琪:[答案] 1的原码00000001反码11111110补码00000001-1的原码10000001反码01111110补码11111111说明:原码即为该10进制数的2进制码,反码为二进制码按位取反,正数的补码等于原码,负数的补码等于去掉符号后的原码取反加一.最高位...

武邑县15748788935: 原码、反码和补码操作是怎样的?
胥奖澜琪: 在计算机内,有符号数有3种表示法:原码、反码和补码,所有数据的运算都是采用补码进行的. 正数的原码,反码,补码都相同,负数稍微复杂. 操作5(101)和-5的二进...

武邑县15748788935: 计算机原码、反码、补码怎么表示 -
胥奖澜琪: 计算机中的数都是以补码存储的,正数的原码、反码和补码相同,所以正数只要知道原码就行了,比如10的原码、反码和补码都为00001010;那么负数的话就有所区别了,比如-10的原码、反码和补码(以8个字节)为例: 原码:10001010 最高位为符号位(正数为0,负数为1) 反码:11110101 符号位不变,其余取反 补码:11110110 在反码基础上加1

武邑县15748788935: 计算机数制转换,求数的反码、补码 -
胥奖澜琪: 1.对于正数:[X]原=[X]反=[X]补如求+78的 原码,补码和反码 【+78】原=01001110B;【+78】反=01001110B;【+78】补=01001110B 2.对于负数:[X]反=[X]原数值位取反,符号位不变[X]补=[X]反+1如求-56的原码 补码 反码 【-56】原=10111000B;【-56】反=11000111B;【-56】补=11001000B

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