百度
360搜索
搜狗搜索

正数的原码反码补码相同吗,正负数的原码、反码和补码的区别详细介绍

本文目录一览: 对于正数,其原码、反码、补码是相同的吗

在计算机系统中,数值,一律采用补码表示和存储。
原码反码,是没有任何用处的。在计算机中,它们也都不存在。
相同、或不相同,又有什么意义呢?
---------------------
补码,其实就是一个【代替负数】的正数。
使用了补码之后,在计算机中,就没有负数了。
顺便,也就消除了减法运算。
那么,计算机只需配置一个加法器,就可以走遍天下了。
---------------------
补码(即一个正数),怎么就能【代替负数】呢?
理论基础在于:计数系统的周期性。
比如,2 位 10 进制数(0~99),计数周期就是 10^2 = 100。
那么: 25 - 1 = 24
    25 + 99 = (一百) 24
只要你:舍弃进位,仅保留 2 位数,99 就能代替-1。
同理,98 也能代替-2。
。。。
这些正数,就称为“负数的补数”。
变换公式: 负数的补数 = 负数 + 周期。
另外还有:
  时钟,时针倒拨 3 小时、正拨 9 小时,等效吧? 周期是 12。
  三角函数,-π/2、+3π/2,正负两种角度,也等效,周期是 2π。
  。。。
这些负数变正数,公式都是: 正数 = 负数 + 周期。
    反之,也成立,即: 负数 = 正数 - 周期。
---------------------
计算机中,8 位 2 进制数,周期就是 2^8 = 256。
-1 的补码,就是:-1 + 256 = 255 = 1111 1111(二进制)。
-2 的补码,就是:254 = 1111 1110(二进制)。
。。。
求补码,用“负数数值”,直接就能求出补码。
不必经过“原码反码取反加一符号位不变”。
数学不好的老外,才需要弄哪些骚操作!
---------------------
只有负数,才需要变换成补码(正数)。
正数,不需要变换,也不允许变换,必须直接去相加运算。
所以,正数,它就没有补码。
有人说:正数的。。。都相同。
这就是被老外带到沟里去了。
原码反码,在计算机中,都是不存在的,哪还有什么相同!
是的,对于正数来说,其二进制原码,反码,补码均为相同的,为原码的形式;对于负数来说,其反码为符号位保持不变,其余各位取反,其反码为符号位保持不变,其余各位取反后再在最后一位上加1.例如:十进制数+18=二进制数01001...

正数的原码反码补码到底是不是一样的?

在计算机中,负数以“其正值的补码形式”表示。
计算机,并不使用原码和反码。
在使用了补码之后,计算机就没有负数了,也没有了减法运算。
那么,计算机只需配置一个加法器,便可横行天下了!
正数,它已经就是正数!
零和正数,不用变换,也不许变换,必须直接进行计算。
所以,正数,根本就没有“任何码”。
另外,计算机中,也没有原码和反码。
相同、不相同?
讨论这个,哪有什么意义!
C语言里正数的原码反码补码是一样的。
符号位是0,原码,反码,补码:00001010;
补码是为负数想出来的办法,目的是减法可以用加补码的方法实现。补码可用反码加1得来,于是又有了负数的反码。
计算机里有硬件“加法器”,有了补码,减法也可以用加法器做了。计算机里运算速度,硬件远快于软件,这是做出反码,补码和原码的原因。
扩展资料
1、原码的优点
简单直观,例如:用8位二进制表示一个数,+11的原码为00001011,-11的原码就是10001011;
原码不能直接参加运算,可能会出错。例如数学上,1+(-1)=0,而在二进制中。
2、原码的缺点
例:00000001+10000001=10000010,换算成十进制为-2。显然出错了。
所以原码的符号位不能直接参与运算,必须和其他位分开,这就增加了硬件的开销和复杂性。
参考资料来源:百度百科—反码

为什么正数原,反,补码相同

反码表示法规定:正数的反码与其原码相同;负数的反码是对其原码逐位取反,但符号位除外.
补码表示法规定:正数的补码与其原码相同;负数的补码是在其反码的末位加1.

正负数的原码、反码和补码的区别

正数的原码、补码、反码相同
负数的反码是逐位取反(符号位除外)
补码是反码+1
在计算机中,原码、反码,都不存在。
 
补码:在计算机中,存在。
在计算机系统中,数值,一律采用补码表示和存储。
计算机中,并没有原码和反码。
这就是它们的区别。
正数的原码,反码,补码都是一样的。
负数的原码你应该知道的,就是带符号位的二进制数。反码,符号位不变为1,其他每位二进制数取反,1变0,0变1.补码就是在反码的基础上,符号位不变,最低位加1,得到补码。这里有个简单的求补码的方法,从原码的最低位向最高位看去,遇到第一个1前,保持不变,第一个1前面的二进制串取反(符号位保持不变)。
下面是一个例子。
x=1011
0110
这是一个负数,它的原码,反码,补码分别是:1011
0110,1100
1001,1100
1010
用上面的那个简单的方法就可以一步写出来了。
有关更详细的原理,可以交流一下。

原码反码和补码有什么区别?

原码就是符号位加上真值的绝对值, 即用第一位表示符号, 其余位表示值。
正数的反码是其本身,负数的反码是在其原码的基础上, 符号位不变,其余各个位取反。
正数的补码就是其本身,负数的补码是在其原码的基础上符号位不变,其余各位取反, 最后+1(即在反码的基础上+1)。
正数的原码,反码,补码都一样。
原码(true form)是一种计算机中对数字的二进制定点表示方法。
原码表示法在数值前面增加了一位符号位(即最高位为符号位):正数该位为0,负数该位为1(0有两种表示:+0和-0),其余位表示数值的大小。

二进制正,负数的原码,反码,补码三者之间是什么关系

以8位二进制为例,
正数的原码、反码、补码相同,
负数的反码为:除符号位外,原码各位取反,反码加1,得负数的反码.
下面就对于原码,反码,补码详细分析一下:
原码:将一个整数,转换成二进制,就是其原码。如单字节的5的原码为:0000 0101;-5的原码为1000 0101。
反码:正数的反码就是其原码;负数的反码是将原码中,除符号位以外,每一位取反。如单字节的5的反码为:0000 0101;-5的反码为1111 1010。
补码:正数的补码就是其原码;负数的反码+1就是补码。如单字节的5的补码为:0000 0101;-5的原码为1111 1011。
在计算机中,正数是直接用原码表示的,如单字节5,在计算机中就表示为:0000 0101。
负数用补码表示,如单字节-5,在计算机中表示为1111 1011。
可以通过原码、反码和补码三者的含义及关系来介绍三者之间的换算关系:1、原码原码就是符号位加上真值的绝对值,即用第一位表示符号,其余位表示值。比如如果是8位二进制:[+1]原=00000001[-1]原=10000001第一位是符号位。2、反码正数的反码是其本身负数的反码是在其原码的基础上,符号位不变,其余各个位取反.[+1]=[00000001]原=[00000001]反[-1]=[10000001]原=[11111110]反第一位是符号位。3、补码正数的补码就是其本身负数的补码是在其原码的基础上,符号位不变,其余各位取反,最后+1.(即在反码的基础上+1)[+1]=[00000001]原=[00000001]反=[00000001]补[-1]=[10000001]原=[11111110]反=[11111111]补第一位是符号位。注:补码的补码等于原码,如:-1的补码为11111111,则11111111的反码为10000000补码为10000001(-1的原码)。
补码,有把减法运算变成加法运算的能力。
所以,在计算机中,用补码代表有符号数。
而原码反码,则毫无用处。
因此,在计算机中,并不存在这些垃圾。
不必关心原码反码。只要会求补码,就够用了。

已知正数的补码,对其减一、取反,可得与之对应负数的补码。
例如:(+18)补码=0001 0010。
减一:0001 0010-1= 0001 0001。
取反:1110 1110。
即有:(-18)补码=1110 1110。
正数的原码、补码和反码相同。
负数的反码等于原码按位取反,补码等于反码加1。
在计算机中,借助于补码,那么,负数和减法,都可以转化成加法来进行运算。
使用这种方法的目的,就是简化计算机的硬件。
在计算机中,只有补码,并没有原码和反码。
补码和负数,有一一对应的关系,可以直接转换,并不需要通过原码反码。
那么,“原码反码取反加一”这些,都是垃圾知识,都是无用的。
-------------------------
计算机中所能计算的位数,是固定的,如八位机、16、32、64 位机。
位数限定之后,减去某个数,就可以用加上其补数,来完成。
如在两位十进制中,减一,就可以用 +99 代替。
   25 - 1 = 24
   25 + 99 = (一百) 24
舍弃进位一百,只取两位,这两个算法,结果就是相同的。
一百,就是两位十进制的计数周期:10^2。
99,就是-1 的补数。 求解公式: 补数 = 周期+负数。
-------------------------
计算机用二进制,补数,就改称:补码。
八位二进制是 0000 0000 ~ 1111 1111(十进制255)。
其计数周期是:2^8 = 256。
那么,[-1]补 = 256-1 = 255 = 1111 1111(二进制)。
如用“原码反码取反加一”来做,也是这个结果。
求负数八位补码的通用计算公式: 补码 = 256 + 负数。
-------------------------
在八位补码中,用 128~255 代表 128 个负数-128~-1。
而 0~127,这就是本来的正数,不需要任何转换。
有人说“正数的原码反码补码,都相同”,其实,这是误导。
正数,其补码都不存在,更别说计算机中不存在的原码反码了。
所以,都相同,就是无稽之谈。
-------------------------
借助于补码,负数和减法,都可以转化成加法来进行运算。
那么,计算机的硬件,就可以简化了。
因此,计算机中,只有加法器,并没有减法器。
(1)正数的补码表示与原码相同;
(2)负数的补码是将原码符号位保持“1”之后,其余各位按位取反,末位再加1便得到补码,即取其原码的反码再加“1”:[x]补=[x]反+1。;
(3)列出 的8位二进制原码,反码和补码并将补码用十六进制表示。
内容拓展:
一、二进制
1、是计算技术中广泛采用的一种数制。二进制数据是用0和1两个数码来表示的数。它的基数为2,进位规则是“逢二进一”,借位规则是“借一当二”,由18世纪德国数理哲学大师莱布尼兹发现。
2、当前的计算机系统使用的基本上是二进制系统,数据在计算机中主要是以补码的形式存储的。计算机中的二进制则是一个非常微小的开关,用1来表示“开”,0来表示“关”。
二、在计算机中,数的正负号是用0,1表示。
三、真值为正时。其原码,反码,补码完全相同。
四、 真值为负时,其原码就是把负号改为1,其余不变。反码就是负号改为1,其余取反。
五、补码就是在反码的基础上加1,加1时记得是逢2进1。

阅读更多 >>>  变形补码计算器,已知x,y,用变形补码计算x-y,同时指出结果是否溢出, x=11011,y=-11111 请教我

为什么正整数的原码,反码,补码相同..?

引进补码的作用是为了让计算机更方便做减法
比如说,按时间12个小时来算
现在的准确时间是4点
有一个表显示的是7点
要校准时间,我们可以将时针退7-4=3格,也可以向前拨12-3=9格
计算机做减法就可以转化成-3=+9
这样可以简化计算机的硬件设备去做复杂的减法
然而得到补码的定义:正数时仍为正,而负数x求补要从2减去|x|
本就为了简化减法引进的补码,结果在求补的过程中还是出现减法
这样,再引进了反码表示法方便求补
说白了,补码反码就是为了简化减法而来的,将减号化为负数
再将负数化为补码求加法
跟正数没关系
不管是正整数还是正小数,原码,反码,补码都全部相同
在计算机系统中,数值,一律采用补码表示和存储。
原码反码,是没有任何用处的。在计算机中,它们也都不存在。
相同、或不相同,又有什么意义呢?
---------------------
补码,其实就是一个【代替负数】的正数。
使用了补码之后,在计算机中,就没有负数了。
顺便,也就消除了减法运算。
那么,计算机只需配置一个加法器,就可以走遍天下了。
---------------------
补码(即一个正数),怎么就能【代替负数】呢?
理论基础在于:计数系统的周期性。
比如,2 位 10 进制数(0~99),计数周期就是 10^2 = 100。
那么: 25 - 1 = 24
    25 + 99 = (一百) 24
只要你:舍弃进位,仅保留 2 位数,99 就能代替-1。
同理,98 也能代替-2。
。。。
这些正数,就称为“负数的补数”。
变换公式: 负数的补数 = 负数 + 周期。
这公式,小学生,都可以推导出来。
另外还有:
  时钟,时针倒拨 3 小时、正拨 9 小时,等效吧? 周期是 12。
  三角函数,-π/2、+3π/2,正负两种角度,也等效,周期是 2π。
  。。。
正数负数之间的变换公式,都是: 正数 = 负数 + 周期。
---------------------
计算机中,8 位 2 进制数,周期就是 2^8 = 256。
-1 的补码,就是:-1 + 256 = 255 = 1111 1111(二进制)。
-2 的补码,就是:254 = 1111 1110(二进制)。
。。。
求补码,用“负数数值”,直接就能求出补码。
不必经过“原码反码取反加一符号位不变”。
数学不好的老外,才需要弄哪些骚操作!
---------------------
只有负数,才需要变换成补码(正数)。
正数,不需要变换,也不允许变换,必须直接去相加运算。
所以,正数,它就没有补码。
有人说:正数的。。。都相同。
这就是被老外带到沟里去了。
原码反码,都是不存在的,哪还有什么相等!
计算机所能计算的位数,是固定的,如 8 位机、16 位机。。。
对于 8 位二进制来说,减一,可以用“加上 1111 1111”代替。
如: 0000 1010 - 0000 0001 = 0000 1001
   0000 1010 + 1111 1111 = (1) 0000 1001
舍弃进位,只保留 8 位的结果,这两个算式的功能,是完全相同的。
这里的 1111 1111 就称为-1 的补码。
借助于补码,就可以用加法器,进行减法运算。
那么,凡是负数,就需要变换成补码,再用加法运算。
而正数,不需要变换,直接进行计算。
也就是说:正数,根本就不存在补码,以及反码。
但是,有些人基本概念不清,乱说:正数的...相同。
不理会这些谬论,就完了。
我是一个规则,就像数学里面的那些定理一样
这是一种规定。
补码是为负数想出度来的办法,目的是减法可以用加补码的方法实现,补码可用反码加1得来,于是又有了负数的知反码。
计算机里有硬件“加法器”,有了补码,减法道也可以用加法器做了。
计算机里运算速度,内硬件远快于软件,这就是反码,补码和原码花样的原因。
扩展资料:
原码、反码和补码是计算机中对数字二进制的三种表示方法。
1、原码
原码(true form)是一种计算机中对数字的二进制定点表示方法。
2、反码
反码是数值存储的一种,多应用于系统环境设置,如linux平台的目录和文件的默认权限的设置umask,就是使用反码原理。
3、补码
正数:正数的补码和原码相同。负数:负数的补码则是符号位为“1”。
参考资料来源:百度百科-反码
参考资料来源:百度百科-原码

我是刚学习c语言,我想知道为什么正数的补码,原码,反码都是相同的,这是规定么,或者是如何求的,谢谢

随便找本汇编的书,一般在第一章。
原码就是二进制定点表示法,即最高位为符号位,“0”表示正,“1”表示负,其余位表示数值的大小。
反码表示法规定:正数的反码与其原码相同;负数的反码是对其原码逐位取反,但符号位除外。
补码表示法规定:正数的补码与其原码相同;负数的补码是在其反码的末位加1。+7]原= 0 0000111 B
[-7]原= 1 0000111 B[+7]反= 0 0000111 B
[-7]反= 1 1111000 B

请问在计算机中正数的原码、反码、补码是一样的么?

在计算机系统中,数值,一律采用补码来表示和存储。
请问在计算机中正数的原码、反码、补码是一样的么?
在计算机中,只有补码,并没有原码和反码。
一样? 显然是不可能的。
说它们是一样的人,显然不懂计算机。
不一样
计算机中的存储系统都是用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等其他高级语言中使用的都是原码

参考资料:

网站数据信息

"正数的原码反码补码相同吗,正负数的原码、反码和补码的区别"浏览人数已经达到19次,如你需要查询该站的相关权重信息,可以点击进入"Chinaz数据" 查询。更多网站价值评估因素如:正数的原码反码补码相同吗,正负数的原码、反码和补码的区别的访问速度、搜索引擎收录以及索引量、用户体验等。 要评估一个站的价值,最主要还是需要根据您自身的需求,如网站IP、PV、跳出率等!