原码,反码,补码的作用和产生的原因是什么

 我来答
沙里波特
2021-05-08 · TA获得超过5248个赞
知道大有可为答主
回答量:1.1万
采纳率:95%
帮助的人:632万
展开全部
原码和反码,没有任何意义。
计算机中,也没有原码反码。
正负数字,存放在计算机中,就称为:补码。
正数,就直接以二进制存放。
负数,则需要变换一下,再存放。
--------------
如果,仅使用两位十进制数,就是 00~99,共有 100 个数字。
减一,就可以用 +99 代替:
  28 - 1 = 27
  28 + 99 = (1) 27
忽略进位,结果就是相同的。
于是,99,就是-1 的补数;
同理,98,就是-1 的补数;
利用【补数】,就可把“相减”运算,改为“相加”。
利用【补数】,就可把“负数”改为“正数”。

对于“-1”,其对应的【补数】就是:100-1 = 99。

-------------
计算机中,没有数字。1 和 0,都是代码。
八位二进制代码,称为一个字节。
0000 0000~1111 1111,共有 256 个代码。
-1,就可以用 256- 1 = 255 (=1111 1111) 代替,
-2,就可以用 256- 2 = 254 (=1111 1110) 代替,

那么,1111 1111 就称为-1 的补码;
同理,1111 1110 也就是-2 的补码。
-------------
计算机中,只有加法器,没有减法器。
做减法运算,必须使用【补码】,用加法来操作。
补码的定义式,如下:
  正数的补码,就是该数字本身。
  负数的补码,就用“模”,加上该负数,即可。
求补码,并不需要学习“原码反码符号位 ”这些垃圾知识。
做而论道
高能答主

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

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

原码和反码,都是没有任何用处的。

补码的功能,类似于:

  时针,倒拨 3 小时,可以用正拨 9 小时代替。

利用这种思路,计算机中的负数,也可以用正数(即补码)代替。

于是,计算机中,就没有负数了。

同时,减法运算,也都不存在了。

因此,借助于补码,就能统一加减法,从而简化计算机的硬件。

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

在时钟中,时针转一圈,周期是 12。

  正拨 9 代替倒拨 3,其算法是:9 = -3 + 周期 12。

分针,倒拨 X 分,也可用正拨(-X + 60)代替。

在三角函数中,周期是 2π,负角,也算出等效的正角度。

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

在计算机中,8 位 2 进制,称为一个字节。

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

那么:

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

-2 的补码是:-2 + 256 = 254 = 1111 1110(二进制)。

。。。

正数,则必须直接参加运算,不许作任何转换。

即:正数,不存在补码。

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

补码,是从周期性推导出来的。

补码与原码反码,并无半点关系。

由“取反加一”学习补码,就不会理解补码的作用和产生的原因。

老外数学不好,也就只能用这些乱七八糟的操作,来求补码了。

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
杞颖卿贵霜
2019-05-22 · TA获得超过3.6万个赞
知道大有可为答主
回答量:1.2万
采纳率:27%
帮助的人:1116万
展开全部
原码、反码与补码及其意义
(1)数值数据的表示
我们把一个数在计算机内被表示的二进制形式称为机器数,该数称为这个机器数的真值。机器数有固定的位数,具体是多少位与机器有关,通常是8位或16位。机器数把真值的符号数字化,通常用最高位表示符号,0表示正,1表示负。例如,假设机器数为8位,最高位是符号位,那么在定点整数的情况下,00101110和10010011的真值分别为十进制数+46和-19。
(2)原码:
一个整数的原码是指:符号位用0或1表示,0表示正,1表示负,数值部分就是该整数的绝对值的二进制表示。
例如:假设机器数的位数是8,那么:[+17]原=00010001
[-39]原=10100111
值得注意的是,由于所以数0的原码不唯一,有“正零”和“负零”之分。
(2)反码
在反码的表示中,正数的表示方法与原码相同;负数的反码是把其原码除符号位以外的各位取反(即0变1,1变0)。通常,用[X]反表示X的反码。例如:
[+45]反
=
[+45]原
=
00101101
[-32]原
=
10100000
[-32]反
=
11011111
(3)补码
在补码的表示中,正数的表示方法与原码相同;负数的补码在其反码的最低有效位上加1。通常用[X]补表示X的补码。例如:
[+14]补
=
10100100
[-36]反
=
11011011
[-36]补
=
11011100
注意:数0的补码的表示是唯一的,即[0]补=[+0]补=[-0]补=00000000
现在我们来看看引进原码、反码与补码这几个概念到底有什么意义。先看下面的例子。例如:X
=
52,Y
=
38,求X

Y的值。
[X]补
=
00110100
[-Y]原
=
10100110
[-Y]反
=
11011001
[-Y]补
=
11011010
现在我们看看[X]补
+
[-Y]补
等于多少?
[52]补:
  0
0
1
1
0
1
0
0
[-38]补:+)
1
1
0
1
1
0
1
0
1
0
0
0
0
1
1
1
0
自然丢失
我们可以看到,最高位丢失后,结果(14)正是52-38的值。从这里我们不难体会到通过补码可以把减法运算变成加法运算来做。这样做有什么意义呢?实事求是地说,引入补码意义非同寻常,可以说是先辈们智慧的结晶。因为,通过补码运算,可以把减法运算变成加法运算;而乘法可以用加法来做,除法可以转变成减法。这样一来,加、减、乘、除四种运算“九九归一”了。这对简化CPU的设计非常有意义,CPU里面只要有一个加法器就可以做算术运算了。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式