请问计算机中补码,原码,反码,移码的定义以及各自的作用是什么,本人编程新手,讲得通俗易懂一点

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

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

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

这就是说,计算机中,并没有原码和反码。

原码和反码,只是在求补码时,表现一下存在感而已。

但是,求补码,还有更正规的方法,完全可以不经过原码反码,就求出补码。

由补码,再求其代表的数值,也可以不用原码反码。

那么,就可以说,原码和反码,都没有任何用处。

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

补码,是什么呢?

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

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

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

补码的用处之一,就是简化计算机的硬件。

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

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

其实,道理也很简单。

你看 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)。

。。。

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

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

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

从中可以看到,并没有使用原码和反码,就把补码求出来了。

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

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

     5  = 0000 0101

 -7 的补码  = 1111 1001

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

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

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

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

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

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

那么,原码和反码是什么呢?

只是老师讲课的资料而已,实际上,它们什么都不是。

上海巴鲁图工程机械科技有限公司_
2022-05-15 广告
光电编码器,是一种通过光电转换将输出轴上的机械几何位移量转换成脉冲或数字量的传感器。光电编码器每转输出60(我们用老板没有说)个脉冲,五线制。其中两根为电源线,三根为脉冲线(A相、B相、Z)。电源的工作电压为 (+5~+24V)直流电源。光... 点击进入详情页
本回答由上海巴鲁图工程机械科技有限公司_提供
宿夏青有华
2019-01-16 · TA获得超过3万个赞
知道大有可为答主
回答量:1.1万
采纳率:32%
帮助的人:637万
展开全部
上面那个是原码,反码就是把上面的1变0,0变1,补码就是在反码后在加上1.
移码就是整个的移位,你想移几位就移几位,比如110移后为100。这是右移,移动没的就补上0
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
问工岳熠
2019-06-26 · TA获得超过3万个赞
知道小有建树答主
回答量:1.1万
采纳率:34%
帮助的人:574万
展开全部
变编程的话,不需要多深的理解这几个名词的意思,这几个算属于计算机组成原理的范畴。这些都是数据的的二进制形式的不同表示法,一般计算机中的数据多用补码表示,使用补码能够简化运算器的设计,原码就是数据的原二进制数据,补码,反码是相对于原码来说的,移码多用于浮点数的阶符。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
沙里波特
2021-10-05 · TA获得超过5251个赞
知道大有可为答主
回答量:1.1万
采纳率:95%
帮助的人:640万
展开全部

在电子计算机中,并没有任何数字,只有“高电平、低电平”。

为了简单,就用“1、0”来代表,则称为“代码”。

人类所用的数字 0,在八位计算机中,就用:0000 0000 代表。

数字 1,就用 0000 0000 + 1 = 0000 0001 来代表。

数字 2,就用 0000 0001 + 1 = 0000 0010 来代表。

... ...

数字-1,就用 0000 0000-1 = 1111 1111 = 255(十进制)来代表。

数字-2,就用 1111 1111-1 = 1111 1110 = 254(十进制) 来代表。

。。。。。。

这些,就是补码。

补码的定义式:

  零和正数的补码=该数本身

  负数的补码=2 的 N 次方+该负数

--------

原码和反码,都是早期参考用的,在现在计算机中,根本就不用原码反码。

移码,只是用在特定的场合。极少应用,不必关心。


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

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式