计算机的原码,反码,补码是怎么回事?可以举例说明吗?

不懂!会的高手交我一下啦,谢谢各位!... 不懂!会的高手交我一下啦,谢谢各位! 展开
 我来答
科普小星球
高粉答主

2019-06-21 · 看世间繁华,学科学道理。
科普小星球
采纳数:324 获赞数:136007

向TA提问 私信TA
展开全部

原码、反码和补码是计算机中对数字二进制的三种表示方法。

1、原码

原码(true form)是一种计算机中对数字的二进制定点表示方法。原码表示法在数值前面增加了一位符号位(即最高位为符号位):正数该位为0,负数该位为1(0有两种表示:+0和-0),其余位表示数值的大小。

例如:用8位二进制表示一个数,+11的原码为00001011,-11的原码就是10001011。

2、反码

反码是数值存储的一种,多应用于系统环境设置,如linux平台的目录和文件的默认权限的设置umask,就是使用反码原理。反码的表示方法是:正数的反码与其原码相同;负数的反码是对正数逐位取反,符号位保持为1。

例如:

[+7]反= 0 0000111 B;

[-7]反= 1 1111000 B。

3、补码

正数:正数的补码和原码相同。负数:负数的补码则是符号位为“1”。并且,这个“1”既是符号位,也是数值位。数值部分按位取反后再在末位(最低位)加1。也就是“反码+1”。

例如:

[+7]补= 0 0000111 B;

[-7]补= 1 1111001 B。

扩展资料

原码、反码、补码的转换方法如下:

(1) 已知原码,求补码。

例:已知某数X的原码为10110100B,试求X的补码和反码。

首先通过原码的首位确定该数字的正负,若为正数,反码与原码相同,补码比原码在末尾加1;若为负数,求其反码时,符号位不变,数值部分按位求反;求其补码时,再在其反码的末位加1。

(2)已知补码,求原码。

按照求负数补码的逆过程,数值部分应是最低位减1,然后取反。但是对二进制数来说,先减1后取反和先取反后加1得到的结果是一样的,故仍可采用取反加1的方法。

参考资料来源:百度百科-反码

参考资料来源:百度百科-补码

参考资料来源:百度百科-原码

做而论道
高能答主

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

计算机的原码,反码,补码是怎么回事?

可以举例说明吗?

计算机中,并没有原码和反码。

补码是怎么回事?

这得从“补数”谈起。

计算机所计算的位数,是固定的,如八位机。。。

位数限定之后,就可以用“补数”代替负数,用加法实现减法运算。

如两位十进制,-1,就可以用 +99 代替。

   25 - 1 = 24

   25 + 99 = (一百) 24

舍弃进位,只取两位,这两种算法功能就是相同的。

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

一百,是两位十进制数的计数周期。

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

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

八位二进制:0000 0000 ~ 1111 1111 (十进制 255)。

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

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

用不存在的“原码反码取反加一”来求,也是这个结果。

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

正数,不用转换。 也可以说,正数自身就是补码。

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

可以举例说明吗?

例如: 7-3 = 4。

用补码的计算过程如下:

    7 的补码=0000 0111

    -3的补码=1111 1101

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

   得   (1)  0000 0100 = 4 的补码

舍弃进位,只保留八位作为结果,这就实现了 7-3。

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
沙里波特
2022-01-07 · TA获得超过5251个赞
知道大有可为答主
回答量:1.1万
采纳率:95%
帮助的人:639万
展开全部

在计算机中,没有原码和反码。

计算机,只是使用“补码”来存放“正负数”。

以八位为例:

数字 0 的存放形式是:0000 0000。

数字+1,就是加上一:0000 0001。

数字+2,就再加上一:0000 0010。

数字+3,就依此类推:0000 0011。

... ... 依次加一,即可。

----------

负数,就是依次减一。

数字 0 的存放形式是:0000 0000。

数字-1,就是减一:0000 0000-1,

 只保留八位,可得:1111 1111(=255)。

数字-2,就再减一:1111 1110(=254)。

数字-3,继续减一:1111 1101(=253)。

... ... 然后你就依次减一吧 ... ...

----------

以上,是计算机中的补码。

---------

八位补码的表示范围:-128~+127。

八位补码的计算公式:

  正数的补码:就是正数本身。

  负数的补码:256-该负数。

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

---------

补码,完全是由二进制加一减一自然形成的,和原码反码没有任何关系。

计算机中,也没有原码和反码。

所以,原码和反码,都没有任何用处。

----------

用补码代替负数,就可以把减法,转换为加法运算。

因此,计算机只要有一个加法器,就够用了。

例如: 7-3 = 4。

用补码的计算过程如下:

    7 的补码=0000 0111

    -3的补码=1111 1101

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

   得   (1)  0000 0100 = 4 的补码

舍弃进位,只保留八位作为结果。

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
推荐于2017-11-25
展开全部
计算机以二进制补码存储数据

以16位机器为例:
比如83的二进制码为:0000 0000 0101 0011
由于正数的源码、反吗、补码,上面的既是源码,也是反码和补码

下面通过负数讲解源码、反码、补码之间的关系
以-83为例
先求出-83绝对值的源码:0000 0000 0101 0011
计算机区分正负数通过判断最高位符号位,1为负数、0为正数
那么-83的源码为:1000 0000 0101 0011
反码在源码基础上按位取反,符号位不变:1111 1111 1010 1100
补码在反码的基础上加1:1111 1111 1010 1101

补码转源码:补码基础上按位取反后加一,符号位在取反时不变,加一时最高位符号位有进位的,进位忽略
取反:1000 0000 0101 0010
加1:1000 0000 0101 0011
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2013-09-05
展开全部
十进制 → 二进制  (怎么算?要是不知道看计算机基础的书去)
47   → 101111

有符号的整数    原码    反码    补码
  47      00101111  11010000  00101111(正数补码和原码相同)
 -47      00101111  11010000  11010001(负数补码是在反码上加1)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式