为什么二进制正数与负数的补码相加得到就是他们十进制相加结果的二进制?好神奇

 我来答
梓偃诼49
2022-03-06 · TA获得超过195个赞
知道答主
回答量:151
采纳率:97%
帮助的人:55.9万
展开全部

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

使用这种方法的目的,就是简化计算机的硬件。

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

补码和负数,有一一对应的关系,可以直接转换,并不需要通过原码反码。

那么,“原码反码取反加一”这些,都是垃圾知识,都是无用的。

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

计算机中所能计算的位数,是固定的,如八位机、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,这就是本来的正数,不需要任何转换。

有人说“正数的原码反码补码,都相同”,其实,这是误导。

正数,其补码都不存在,更别说计算机中不存在的原码反码了。

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

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

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

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

做而论道
高能答主

2023-03-09 · 把复杂的事情简单说给你听
知道大有可为答主
回答量:3万
采纳率:80%
帮助的人:1.1亿
展开全部
为什么二进制正数与负数的补码相加,得到就是他们十进制相加结果的二进制?
好神奇
--------------

负数的补码,就是代表十进制负数的。
与某正数相加,当然要得和十进制相加的结果相同。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式