为什么计算机中所有的数都用补码表示?

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

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

补码,其实,它就是一个“代替负数”的正数。

使用了补码,计算机中,就没有负数了,也就没有减法了。

那么,计算机只需要一个加法器,就可以走遍天下了。

为什么使用补码?

就是为了简化计算机的硬件。

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

补码(也就是正数),怎么就能代表负数呢?

其实,道理也很简单。

你看 2 位 10 进制数吧:

  25 - 1 = 24

  25 + 99 = (一百) 24

进位是 10^2 = 100,这也是 2 位数的计数周期。

这个进位,显然不在 2 位数之中。

结果,只取 2 位数,+99 和-1 的作用,就是相同的。

就是说,只要舍弃了进位,正数,就可以代替负数。

这个正数,就是“负数的补数”。

求补数的公式: 补数 = 负数 + 周期。

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

三角函数中,大家都知道:

  -π/2 和 +3π/2,这两个角度,功能也是相同的。

负角度,和正角度,要怎么变换呢? 

也是用同样的公式: 正角度 = 负角度 + 周期(2π)。

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

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

8 位 2 进制是:0000 0000~1111 1111 (十进制 255)。

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

此时,-1 就可以用 255  (1111 1111)  代替。

同理,-2 的补码就是 254 (1111 1110)。

。。。

正数,本身就是正数,必须直接参加运算,不许再作任何变换。

所以,正数,根本就没有补数(补码)。

由此,你就可以推出补码定义式:

 当 X >= 0,  [ X ]补 = X;     零和正数不用变换。

 当 X < 0,  [ X ]补 = X + 2^n。 n 是补码的位数。

以上就是“求补码的正规做法”。

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

示例,5 - 7 = -2,用补码计算如下:

     5  = 0000 0101

 -7 的补码  = 1111 1001

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

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

舍弃进位,只取 8 位,结果就是正确的。

这就说明了,借助于补码,就可以用加法,实现减法运算。

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

所以,在计算机中,根本就不使用原码和反码。

做而论道
高能答主

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

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

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

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

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

八位机就是八位,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)。

。。。

公式:

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

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

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

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

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

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式