为什么要引入补码?

 我来答
做而论道
高能答主

2022-03-05 · 把复杂的事情简单说给你听
知道大有可为答主
回答量:3万
采纳率:80%
帮助的人:1.1亿
展开全部

计算机中,只有补码,并没有原码和反码。


借助于补码,负数和减法,都可以转化成加法来进行运算。


那么,计算机的硬件,就可以简化了。


因此,在计算机中,只有加法器,并没有减法器。


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


补码是怎么回事? 这得从“补数”谈起。


计算机所能计算的位数,是固定的,如八位机、16 位。。。


位数限定之后,就可以用“补数”代替负数,用加法实现减法运算。


如限定两位十进制,-1,就可以用 +99 代替。


   25 - 1 = 24


   25 + 99 = (一百) 24


舍弃进位,只取两位,这两种算法功能就完全相同。


99,就是-1 的补数。 计算公式:补数 = 一百+负数。


一百,是两位十进制数的计数周期。


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


计算机用二进制,补数,就改称为:补码。


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


计数周期是:2^8 = 256。


求负数补码的计算公式,也是: 周期 + 该负数。


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


用不存在的“原码反码取反加一”来求,也是这个结果。


正数,不用转换,直接参加运算。所以,正数自身就是补码。


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


举例说明,如: 5 - 7 = -2。


用补码计算的过程如下:


    5 的补码=0000 0101


    -7的补码=1111 1001


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


   得   (1)  1111 1110 = -2 的补码


舍弃进位,只保留八位,这就实现了 5-7。

TableDI
2024-07-18 广告
VLOOKUP是Excel中用于垂直查找的函数,其基本用法包括四个参数:1. 查找值:即在数据表首列中需要搜索的值。2. 数据表:包含查找值的单元格区域或数组。3. 返回值所在列数:指定返回查询区域中第几列的值。4. 查找方式:选择精确匹配... 点击进入详情页
本回答由TableDI提供
柳小朵儿
2021-05-13 · TA获得超过6609个赞
知道小有建树答主
回答量:2435
采纳率:34%
帮助的人:205万
展开全部
没什么屌用,就是一种约定,人为定义的东西,就是大家都那么干,你也要那么干。
你可以理解其起鸡码,鸭码,屎码,只要知道那个的作用是进行负数运算就行了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
凡人多凡事qm

2021-03-12 · TA获得超过772个赞
知道答主
回答量:94
采纳率:91%
帮助的人:4万
展开全部

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
cdyzxy
推荐于2017-10-04 · TA获得超过2.1万个赞
知道大有可为答主
回答量:1.4万
采纳率:84%
帮助的人:3551万
展开全部
由于计算机存储的数据一般是有位数限制的,那么两个数相加如果超出位数,那么超出部分就会自动丢失。
补码的形式就是利用了这个特点,方法是,对于正数相加没有特殊的,如果溢出了是正常的,而对于正数加负数这样的运算,算法是不需要考虑参与运算数据的符号,直接两数进行二进制加的动作,结果也无需转换就是预期的,那么就需要将负数以补码形式存在,原理是这样,让一个数加上这个补码形式表现的负数时,由于溢出自动丢失的效果,结果与减去这个负数的绝对值是相同的,这就是补码存放负数的实质,是定点CPU计算方面的特色之一。
你可以实际演算一下,比如用4减去2,和用4加上补码表示的-2得到的结果是一致的。
追问
计算时是不是同种码的?
追答
由于正数的补码就是其本身,所以负数用补码表示后,都是一致的编码计算。
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式