原码、反码、补码

 我来答
逢灵萱帛齐
2019-08-13 · TA获得超过3万个赞
知道大有可为答主
回答量:1.1万
采纳率:30%
帮助的人:804万
展开全部
原码
:正数原码是其二进制,最高位为0,负数原码是其绝对值的二进制,然后最高位取1
正数
反码
是其本身,负数的反码是最高位(符号位)取1,其余各位按原码
取反
(也就是0变为1,1变为0)
补码
:正数补码是其本身,负数(符号位不变)按位取反再加1
例如:假定—个数在机器中占用8位,则-23原码10010111补码11101001反码11101000
做而论道
高能答主

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

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

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

补码,实际上,也就是一个“代替负数”的正数。

所以,使用了补码之后,计算机中,就没有负数了。

而且,在计算机中,也就没有减法运算了。

因此,计算机只需有一个加法器,就可以打遍天下。

补码的功能之一,就是可以简化硬件!

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

所以,计算机,根本不使用它们!

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

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

其实,很简单。

你看钟表的时针,倒拨 3 小时正拨 9 小时,效果相同吧?

你看三角函数,-π/2 和 +3π/2,两者的函数值,相同吧?

再看 2 位 10 进数,0~99,计数周期是 10^2。

可以看到:

   25 - 1 = 24

   25 + 99 = (一百)  24

只要你忽略进位(10^2),+99 和-1 就是等效的。

以上这些,有如下规律:

   正数 = 负数 + 周期

这个正数,就是“负数的补数”,它就可以代替负数,进行运算

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

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

8 位 2 进制数,共可以构成 256 组代码。

所以,计数周期,就是 2^8 = 256。

-1 的补码就是:-1 + 256 = 255

       = 1111 1111 (二进制)。

-2 的补码就是:254 = 1111 1110。

。。。

-128 的补码就是:128 = 1000 0000。

以上就是 256 组代码中的 128 个负数补码。

正数,必须直接参加运算,不许做任何变换。

正数本身,已经就是正数,所以并不存在什么“正数的补码”。

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

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

用八位补码计算的过程如下:

      5 = 0000 0101

   -7的补码= 1111 1001

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

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

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

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

计算机,只用补码。

原码反码,都是虚构出来的。

即使把它们说出天花来,它们也是不存在的。

求反加一、符号位不变。。。是怎么回事?

老外数学不好,才会想出这些个烂办法。

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
载飞翮羿茜
2020-03-09 · TA获得超过3万个赞
知道大有可为答主
回答量:1.1万
采纳率:33%
帮助的人:579万
展开全部
示例如下
原码111010110

反码将各位的值取反000101001

补码+1
000101010

这样应该明白了吧

如果你对我的答案还满意

请选个满意答案
呵呵
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
帐号已注销
2020-01-09 · TA获得超过2.4万个赞
知道答主
回答量:9.4万
采纳率:12%
帮助的人:4559万
展开全部
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式