什么是原码 补码 反码

 我来答
沙里波特
2022-01-26 · TA获得超过5251个赞
知道大有可为答主
回答量:1.1万
采纳率:95%
帮助的人:640万
展开全部

有符号数,有三种表示方法,即原码、反码和补码。

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

在计算机系统中,原码和反码,都是不存在的。

==================

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

+1,就是加上一,即为:0000 0001。

+2,就再加上一,即为:0000 0010。

其他正数,依次递增即可。。。

最后的是+127,即为:0111 1111。

以上这些,就是正数的补码。

----------

负数,就是从 0 往下减。

-1 就是 0000 0000-1,取八位的结果,

那么,-1 就是:1111 1111 = 255(十进制)。

同理,-2 就是:1111 1110 = 254。

其他负数,依次递减即可。。。

最后的是-128,即为:1000 0000 = 128。

以上,就是数值,存在计算机中的补码。

求负数的补码,计算公式是:【 256 + 这个负数 】。

如果需要二进制,就自己变换吧。

==================

十进制数的运算,有个特点,看下面的算式:

   25 - 1 = 24

   25 + 99 = (一百) 24

忽略进位,这两种算法,就具有相同的功能。

因此,99,就是-1 的补数。

在二进制时,255 就是-1 的补码。

==================

借助于补码,就可以把减法,转换成加法运算。

这就可以:简化计算机的硬件。

如,减法运算: 59-31 = 28。

在计算机中,用补码的加法运算如下:

    59 的补码=0011 1011

   -31 的补码=1110 0001

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

 得:    (1)    0001 1100 = 28 的补码

忽略进位,只保留八位,结果就完全正确。

这就实现了减法运算。

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

所以,计算机中,根本就没有原码和反码。

网易云信
2023-12-06 广告
网易云信提供一站式的 1 对 1 UIKit 组件库,可以更快地搭建 1 对 1 社交平台,能够快速实现音视频呼叫、音视频通话、1对1消息发送、美颜和礼物功能,直接可以复用我们的组件源码就可以了。优势:1、全套1对1 UI组件,接入更快;2... 点击进入详情页
本回答由网易云信提供
萌呆人
2015-04-10
知道答主
回答量:12
采纳率:0%
帮助的人:7.5万
展开全部
引入原码 反码 和补码的目的就是为了解决减法问题,因为计算机CPU的运算器中只有加法器,要把减法转化成加法来计算.
举个例子,A表示十进制数“+16”,B表示十进制数“-19”,把这两个数的原码直接相加,得:
A=+16 (A)原=00010000
B=-19 (B)原=10010011
00010000 +
10010011
————
10100011
其结果符号位为1是负数,其数值位为100011,即等于十进制数“-35”,这显然是错的结果.
再比如,十进制数“+16”与“+19”的原码直接相减,得:
00010000 -
00010011
————
11111101
结果为“-125”,这又是错的.
但是引入补码后,加减法都可以用加法来实现,如“-16+11”的运算:
11110000 + -16的补码
00001011 11的补码
————
11111011 -5的补码
如果是“-16-11”,那么就转化为加法运算“-16+(-11)”
11110000 + -16的补码
11110101 -11的补码
————
111100101 -27的补码
在字长为8位的系统中,最高位所产生的进位被自然丢弃,运算结果的机器数为11100101,是-27的补码形式,结果正确.
顺便告诉你一些其它的东西:
1.二进制数中,两数的补码之和等于两数和的补码.
2.补码=反码+1
3.反码=原码除符号位外其它数值取反(即该数的绝对值取反),即“0”变“1”,“1”变“0”.
4.任何正数的原码 反码 补码的形式完全相同(即都是自身,不变)
5.在计算机中,有符号的数都是采用补码来表示的.
6.计算的时候,符号位也参与运算.
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
做而论道
高能答主

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

什么是补码?

  补码是一个“代表负数运算的正数”。

  比如:25 - 1 = 24

     25 + 99 = (一百)  24

  忽略进位,+99 就能代替-1。

  同理,+98 就能代替-2。

  。。。

  这些正数,就是“负数的补数”。

  在计算机中,使用二进制,就改称为“补码”。

  使用补码,可把加减法,统一为加法运算,从而就能简化硬件。

 

什么是原码、反码?

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

  原码和反码,只能写在纸上、在嘴里说说,并没有实际意义。

  没有用的东西,你说它们是什么就是什么,你就随便乱说吧。

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
_兎爷
2015-04-10 · TA获得超过171个赞
知道答主
回答量:47
采纳率:0%
帮助的人:29.7万
展开全部
你在学破解?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
帐号已注销
2020-01-09 · TA获得超过2.4万个赞
知道答主
回答量:9.4万
采纳率:12%
帮助的人:4610万
展开全部
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式