请问,什么叫原码反码补码?说简单些

 我来答
圭若谷望云
2020-02-07 · TA获得超过3.7万个赞
知道大有可为答主
回答量:1.2万
采纳率:25%
帮助的人:957万
展开全部
原码表示法是机器数的一种简单的表示法。其符号位用0表示正号,用:表示负号,数值一般用二进制形式表示。设有一数为x,则原码表示可记作[x]原。
补码可由原码得到。如果机器数是正数,则该机器数的补码与原码一样;如果机器数是负数,则该机器数的补码是对它的原码(除符号位外)各位取反,并在未位加1而得到的。设有一数X,则X的补码表示记作[X]补。
反码可由原码得到。如果机器数是正数,则该机器数的反码与原码一样;如果机器数是负数,则该机器数的反码是对它的原码(符号位除外)各位取反而得到的。设有一数X,则X的反码表示记作[X]反。
亚远景信息科技
2024-12-11 广告
ASPICE,全称Automotive SPICE,中文译为汽车软件过程改进及能力评定,是评估和改进汽车软件开发流程的国际标准。它旨在提高软件开发的质量和效率,确保软件符合质量要求及安全、法规标准。ASPICE基于过程能力和过程改进两大核心... 点击进入详情页
本回答由亚远景信息科技提供
沙里波特
2024-11-23 · TA获得超过5251个赞
知道大有可为答主
回答量:1.1万
采纳率:95%
帮助的人:639万
展开全部

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

原码和反码,计算机,既不使用,也不存储。

讨论原码反码,也就没有任何意义。

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

计算机使用的,是二进制数。

在计算机系统中,字长,是固定的。

八位机,其寄存器、运算器、总线位数,都是 8。

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

数值 0,存在八位机中,就是:0000 0000。

数值 +1,就是:0000 0001。

数值 +2,就是:0000 0010。

。。。 。。。

数值 +127,就是:0111 1111。

可以看出,当十进制数递增时,其二进制数,也是“依次递增”的。

规律就是:0 + X。

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

同理,如果十进制数递减,其二进制数,必然是“依次递减”的。

因此,数值-1,就是:0000 0000-1 = (借位 1) 1111 1111 (255)。

(借位,不在字长 (8) 之内,应该忽略。)

数值-2,就再次减一,得:1111 1110 (254)。

数值-3,就是 0-3,得:1111 1101 (253)。

。。。 。。。

数值-128,就是 0-128,得:1000 0000 (128)。

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

由此可知,-128~-1,存在计算机中,就是:128~255。

前面说过的 0 ~ 127,依然还是: 0 ~ +127。

这一组数据,就是计算机专家所说的:补码。

8 位数的补码,所表示真值的范围就是:-128 ~ +127。

真值,与其补码的换算公式是: [ X ]补码 = 0 + X。

如果真值是正数,当然就是:0+正数;

如果真值是负数,那也就是:0+负数。

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

有了补码,就可以用加法,完成减法运算了。

例如,十进制的减法: 5-4 = 1。

用八位补码计算,竖式如下:

+5 补码: 0000 0101

-4 补码: 1111 1100

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

( 进位 1 )   0000 0001

舍弃进位,八位的和,就是+1 的补码。 

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

利用补码,可以把减法化为加法运算,可以简化硬件设备。

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

所以,计算机中,只用补码,不用原码和反码。

讨论原码反码,也就是没有任何意义的事。

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
做而论道
高能答主

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

利用补码的理论,可将负数,用一个正数来代替。

那么,减法,就可以用加法代替。最终目的,就是节省硬件。

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

原码反码,都是不存在的。

数值和补码,可以直接互相转换,根本就不需要用原码反码来过渡。

负数的补码,怎么就是个正数呢?

学过三角函数的同学,都知道,函数周期是 2π(360°)。

因此,-90°,就可以用 +270° 来进行运算。

同理,时针,倒拨 5 小时,就可以用正拨(12-5)代替。

用正数,代替负数,必要的条件,就是:周期性。

如果限定,仅使用两位十进制数:0~99,周期就是 100。

-1,就可以用 +99 代替:

   25 - 1 = 24

   25 + 99 = (一百) 24

只取两位,它们的功能,不就是相同的吗?

99,就是-1 的补数。 计算公式:补数=周期+负数。

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

计算机所做的运算,位数,也是固定的,八位机,就是 8 位。

八位二进制的范围是:0000 0000~1111 1111(十进制 255)。

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

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

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

。。。

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

(如果需要二进制,你就再转换一下。)

以上,就是“什么叫补码?”的答案。

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

原码反码,都没有计算的功能,计算机中,也不用它们。

“什么叫原码反码?”

不存在的东西,还讨论它们干嘛? 就算了吧。

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
植恒米赋
2020-02-06 · TA获得超过3.6万个赞
知道大有可为答主
回答量:1.2万
采纳率:32%
帮助的人:1271万
展开全部
mov
只是简单的储存,单看数据本身,无法判断一个二进制数有没有符号,是用补码、反码、还是原码,甚至是否代表一个数字。那些都是编程的人为数据赋予的意义。如果有大段程序,可以看出逻辑、算法,也许可以辨别。
一般来说,表达负整数,目前只有用“补码”一个方法。“反码”和“原码”纯属历史,微处理器年代已经不用了。至于改二进制数有没有符号,就要从程序的上下文找线索了。有些指令是分有符号和无符号的,如果出现了,就比较好判断。以
8086
指令集为例:


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

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式