阐述补码运算的意义。
计算机中的符号数有三种表示方法,即原码、反码和补码。三种表示方法均有符号位和数值位两部分,符号位都是用0表示“正”,用1表示“负”,而数值位,三种表示方法各不相同。
在计算机系统中,数值一律用补码来表示和存储。原因在于,使用补码,可以将符号位和数值域统一处理;同时,加法和减法也可以统一处理。此外,补码与原码相互转换,其运算过程是相同的,不需要额外的硬件电路。
补码可以简化计算机的设计。
对于人脑而言,做加减题时,第一反应就是根据符号位,来选择对真值区域的加减。但是计算机而言,像加减乘除这类最最基础也是应用得最频繁的基本运算,在物理逻辑的设计上一定要设计的尽量简单。
如果让计算机也先判断符号位再分别做加或者减的运算的话,会使得计算机的电路设计变得较为复杂。人类发明了将符号位也参与进运算的方法来。对于计算机而言,不管是加法还是减法,都统一用加法来做运算,可以使得计算机的设计变得更加的简单。
扩展资料:
补码是另一种编码方式。与反码类似,正数的补码是它本身,而负数的补码则是它的反码再+1。同样,对于负数而言,补码也是无法直观地看出数值的,需要转成原码。
CPU 的基本单元 ALU 模块。在ALU里,加法是最基本的运算。通过程序,乘法可以转换为加分,除法可以转换为减法。补码表示,则可以让减法直接转换为加法。这样,ALU 核心只需要加法器即可满足功能,加法器可以通过集成电路中的晶体管来实现。
参考资料来源:百度百科-补码
数值有正负之分,计算机就用一个数的最高位存放符号(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 的补数。 计算方法: 9 = 12-3。
同理,分针倒拨 X 分,可以用正拨 (60-X) 代替。
60,是分针的周期。
上过中学的同学都知道,三角函数的周期是 2π。
那么,在-π/2 和 +3π/2 这两处的函数值,一定是相同的。
用“正角度”代替“负角度”的算法是:
+3π/2 =- π/2 + 周期 2π 。
----------------------
如果你使用 2 位 10 进制数:0~99。
计数周期就是 10^2 = 一百。
那么,+99,就能够当作-1 来用。
24-1 = 23
24 + 99 = (一百) 23
舍弃进位,这两种算法,功能就是相同的。
于是,99 就是 -1 的补数。
计算方法: 补数 = 负数 + 周期。
对于其它负数,自己去求补数吧。
----------------------
计算机中使用二进制,补数,就改称为【补码】。
八位二进制是:0000 0000~1111 1111。
相当于十进制:0~255。
计数周期就是 2^8 = 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
舍弃进位,只保留八位,结果完全正确。
----------------------
借助于补码,可以简化计算机的硬件。
原码和反码,都没有这种功能。
在计算机中,根本就没有原码和反码。
它们都是什么? 就不用关心了。
求补码,也完全用不到它们。
补码的作用,主要,是代表负数的。
数字 0,其八位补码就是:0000 0000。
那么,数字 -1,就是 0000 0000 - 1 = 1111 1111。
所以,数字 -1,其补码就是:1111 1111。
同理,数字 -2,其补码就是:1111 1110。
。。。
最终,数字 -128,其补码就是:1000 0000。
求补码,并不需要原码反码。
计算机中,根本也没有原码反码。
原码反码,是毫无用处的东西。
为什么要使用补码运算?
1、用加法可以实现减法、乘法和除法运算,能简化计算机中运算器的内部结构。2、可以让符号位作为数值直接参加运算,而最后仍然可以得到正确的结果符。补码的本质:要将正数转成对应的负数,其实只要用0减去这个数就可以了。比如,-8其实就是0-8。
简述补码运算的意义
在计算机系统中,数值一律用补码来表示和存储。原因在于,使用补码,可以将符号位和数值域统一处理;同时,加法和减法也可以统一处理。此外,补码与原码相互转换,其运算过程是相同的,不需要额外的硬件电路。
阐述补码运算的意义。
于是就引入了补码概念. 负数的补码就是对反码加一,而正数不变,正数的原码反码补码是一样的.在补码中用(-128)代替了(-0),所以补码的表示范围为:(-128~0~127)共256个.注意:(-128)没有相对应的原码和反码, (-128) = (10000000) 补码的加减运算如下:( 1 ) 10- ( 1 ) 10= ( 1 )10 +...
简述补码运算的意义
原码和反码,没有任何意义。计算机中,也没有原码反码。正负数字,存放在计算机中,就称为:补码。正数,就直接以二进制存放。负数,则需要变换一下,再存放。--- 如果,仅使用两位十进制数,就是 00~99,共有 100 个数字。减一,就可以用 +99 代替:28 - 1 = 27 28 + 99 = (1) 27 ...
计算机中补码的意义和算法
存在意义,就是:简化硬件,省钱。因为,负数,是可以用一个正数(补码)代替的。如: 24 - 1 = 23 24 + 99 = (一百) 23 忽略进位,用 +99 就可以代替-1。+99,就是-1 的补数。 计算机用二进制,就称为:补码。用补码(正数)代替负数,那么,计算机中,就没有负数了。因此,在...
二进制运算为什么要用补码进行运算?
计算机采用补码数进行运算的原因:在计算机系统中,数值一律用补码来表示和存储。原因在于,使用补码,可以将符号位和数值域统一处理;同时,加法和减法也可以统一处理。在计算机系统中,数据,一律采用补码来表示和存储。原因在于,使用补码,可以将加法和减法统一处理。补码,就是补码,与原码反码毫无关系。从...
C语言的补码存在的意义是什么?看书不怎么懂
使用补码的意义,就是简化了计算机的硬件。常识:时钟倒拨 3 小时,可以用正拨 9 小时代替。怎么计算,自己推导吧。--- 两位十进制数,共有 100 个数字:00~99。那么,减一,就可以用 +99 代替:25-1 = 24 25 + 99 = (1) 24 忽略进位 100,只取后两位,结果,不就是相同的吗?结论...
补码的意义
补码也非常的简单,就是在反码的基础上按照正常的加法运算加1。从前面的三种数字编码类型的定义,我们可以看出数据的原码,使用符号位来区分了正负数,更加符合人脑直观识别并且用于计算的表达方式。但是在计算机中,是通过补码的形式保存数据,下面将解释为什么计算机系统要用补码存放数据。定义一个字长为4的...
计算机为什么采用补码来进行运算
科研,不是一次就能成功的。它们先设计了原码,试验之后发现,不好用。然后又设计了反码,试验之后发现,仍然不好用。痛定思痛,屡败屡战,终于设计出来了好用的补码。所以,在计算机系统中,数值,一律采用补码表示和存放。原码反码,计算机中,都不存在。
计算机为什么采用补码计算
于是,减法运算,也就可以用加法代替了。借助于补码,就统一了加减法,就能够简化计算机的硬件。十进制比较容易理解:25 - 1 = 24 25 + 99 = (一百) 24。只要忽略进位,+99 就能代替-1。+99 就称为-1 的补数。在这里用了 2 位 10 进制。求补数的算法:补数 = 负数 + 10^2。---...
剧柳硫酸: 计算机中的符号数有三种表示方法,即原码、反码和补码.三种表示方法均有符号位和数值位两部分,符号位都是用0表示“正”,用1表示“负”,而数值位,三种表示方法各不相同. 在计算机系统中,数值一律用补码来表示和存储.原因在于,使用补码,可以将符号位和数值域统一处理;同时,加法和减法也可以统一处理.此外,补码与原码相互转换,其运算过程是相同的,不需要额外的硬件电路.
常宁市19564226486: 计算机中使用补码运算的目的 - ?
剧柳硫酸: 补码运算能将减法化为加法来完成,从而 使运算器中不需配置减法电路,节省了硬件电路,简化了计算机或者运算器的设计 在计算机系统中,数值一律用补码来表示和存储.原因在于,使用补码, 可以将符号位和数值域统一处理 ;同时, 加法和减法也可以统一处理 .此外,补码与原码相互转换,其运算过程是相同的,不需要额外的硬件电路. 补码的特性: 1、一个负整数(或原码)与其补数(或补码)相加,和为模. 2、对一个整数的补码再求补码,等于该整数自身. 3、补码的正零与负零表示方法相同.
常宁市19564226486: 补算码运算的意义 - ?
剧柳硫酸: 求补运算是种运算,这种运算是由补码的转换过程升级而来.有了补码,为什么还要提出求补运算这种新的运算?要理解求补运算的提出原因,还要从补码说起. 求补运算的运算法则:将一个数(包括正数和负数)所有二进制位(包括符号位和...
常宁市19564226486: 简述补码的特点与作用 - ?
剧柳硫酸:[答案] 补码的表示方法 1) 模的概念:把一个计量单位称之为模或模数.例如,时钟是以12进制进行计数循环的,即以12为模.在时钟上,时针加上(正拨)12的整数位或减去(反 拨)12的整数位,时针的位置不变.14点钟在舍去模12后,成为(下午)2点...
常宁市19564226486: 补码有什么好处 - ?
剧柳硫酸: 引进补码的好处是: 1.可以把减法运算变成加法运算; 2.可以把符号位当成数值位参与运算,结果是正确的符号位.
常宁市19564226486: 计算机为什么要采用补码实现数的运算 - ?
剧柳硫酸: 补码使用是简化电路 因为补码里面零只有一种表示,不会像原码和反码一样有两种表示 最重要是补码里计算减法就是加上减数的相反数,这与十进制计算是一样的 正是这种特性会简化计算机中加减法计算元件的门电路使用,达到更好的效率
常宁市19564226486: 计算机中补码的意义和算法什么时候用补码?补码的作用是什么?为什么在计算的时候还要+1或 - 1? - ?
剧柳硫酸:[答案] 负数时. 主要是正负数的时候...按正常的想法是只要符号位为1时即为负数,但是这种方法来计算得先计数它们的绝对值,然后才好进行加减等操作.. 引入补码后,就解决了这一问题... 负数的补丁是取反后+1
常宁市19564226486: 机器中为什么要用补码?有什么好处... - ?
剧柳硫酸: 数的原码表示形式简单,适用于乘除运算,但用原码表示的数进行加减法运算比较复杂,引入补码之后,减法运算可以用加法来实现,且数的符号位也可以当作数值一样参与运算,因此在计算机中大都采用补码来进行加减法运算
常宁市19564226486: 计算机中带符号的数为什么要用补码表示 - ?
剧柳硫酸: 原因在于,使用补码,可以将符号位和数值域统一处理;同时,加法和减法也可以统一处理.此外,补码与原码相互转换,其运算过程是相同的,不需要额外的硬件电路. 参考:http://baike.baidu.com/link?url=2bd0nZuEIpDObWPuBtP0XruEsAVEpEwRooFOXJSfPosWXyFPcLYmoCXdBmouV6fhQfLTpqP5RFKoFjQlkUPuz_
常宁市19564226486: 原码,反码,补码的作用和产生的原因是什么 - ?
剧柳硫酸: 原码、反码与补码及其意义 (1)数值数据的表示 我们把一个数在计算机内被表示的二进制形式称为机器数,该数称为这个机器数的真值.机器数有固定的位数,具体是多少位与机器有关,通常是8位或16位.机器数把真值的符号数字化,通常...