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

作者&投稿:诺栏 (若有异议请与网页底部的电邮联系)
计算机的原码转换成反码和补码怎么转?最好举个例子说明一下。~

以16位为例:
-5的原码1000000000000101
-5的反码1111111111111010

-5的补码1111111111111011

5的原码0000000000000101
5的反码0000000000000101
5的补码0000000000000101

原码:
在数值前直接加一符号位的表示法.对于8位二进制来说:
[+7]原= 0 0000111 [-7]原= 1 0000111
反码:
正数的反码与原码相同.
负数的反码,符号位为“1”,数值部分按位取反.
[+7]反= 0 0000111 [-7]反= 1 1111000
补码:
正数的补码和原码相同.
负数的补码则是符号位为“1”,数值部分按位取反后再在末位(最低位)加1.也就是“反码+1”.
[+7]补= 0 0000111 [-7]补= 1 1111001

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

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的方法。

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

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

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



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

可以举例说明吗?

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

补码是怎么回事?

这得从“补数”谈起。

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

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

如两位十进制,-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。



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

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

以八位为例:

数字 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 的补码

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



计算机以二进制补码存储数据

以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

十进制 → 二进制  (怎么算?要是不知道看计算机基础的书去)
47   → 101111

有符号的整数    原码    反码    补码
  47      00101111  11010000  00101111(正数补码和原码相同)
 -47      00101111  11010000  11010001(负数补码是在反码上加1)

计算机的原码,反码,补码是怎么回事?可以举例说明吗?
答:原码、反码和补码是计算机中对数字二进制的三种表示方法。1、原码 原码(trueform)是一种计算机中对数字的二进制定点表示方法。原码表示法在数值前面增加了一位符号位(即最高位为符号位):正数该位为0,负数该位为1(0有两种表示:+0和-0),其余位表示数值的大小。例如:用8位二进制表示一个数,...

计算机原码,反码和补码是怎么计算的?
答:[+1] = [00000001]原 = [00000001]反 [-1] = [10000001]原 = [11111110]反 可见如果一个反码表示的是负数,人脑无法直观地看出来它的数值。通常要将其转换成原码再计算。3、补码 补码的表示方法是:正数的补码就是其本身。负数的补码是在其原码的基础上,符号位不变,其余各位取反,最后+1。

计算机中的原码,补码,反码是什么意思?
答:计算机中的原码、反码和补码是表示有符号整数的不同方式,用于在计算机中进行整数运算和表示负数。以下是它们的定义和示例:原码(Sign-Magnitude):原码的表示方式最简单,将整数分为两部分:符号位和数值位。符号位用于表示正数或负数,0表示正数,1表示负数。数值位表示整数的绝对值。例如,十进制数 -5...

什么是原码、反码和补码?
答:原码 = 反码 + 1 反码 = 补码 - 1 补码 = 2^n - 1,其中n为数值的位数 例如,假设我们要计算一个8位有符号整数的原码、补码和反码,则可以按照以下步骤进行计算:1. 将8位二进制数10000001转换为十进制数:127 2. 计算原码:原码 = 反码 + 1,则反码为11111110,加上1得到原码为10000000...

补码、原码、反码怎么运算?
答:原码, 反码和补码的概念.对于一个数, 计算机要使用一定的编码方式进行存储. 原码, 反码, 补码是机器存储一个具体数字的编码方式。原码就是符号位加上真值的绝对值, 即用第一位表示符号, 其余位表示值。反码就是正数的反码是其本身,负数的反码是在其原码的基础上, 符号位不变,其余各个位取反。补...

什么是原码,补码和反码?
答:数在计算机中是以二进制形式表示的。 数分为有符号数和无符号数。 原码、反码、补码都是有符号定点数的表示方法。 一个有符号定点数的最高位为符号位,0是正,1是副。 以下都以8位整数为例, 原码就是这个数本身的二进制形式。 例如0000001 就是+11000001 就是-1 正数的反码和补码都是和原码相同。 负数的...

原码反码补码是什么意思
答:原码、反码和补码是计算机中用来表示有符号整数的编码方式。它们在数字的表示方法和运算中有着不同的意义和作用。1.原码(Sign-Magnitude):原码是最简单的表示方法,即将一个数的绝对值转换为二进制,然后用符号位表示正负。符号位为0表示正数,符号位为1表示负数。例如:+5的原码为00000101,-5的原码...

原码、补码、反码之间是怎样转换的?
答:负数的反码顾名思义,是除了符号位与原码一致,其余位都与原码相反。(例如:-2的原码是1000 0010,那么其反码是1111 1101),负数的补码则是在其反码的基础上加1。(例如:-2的反码是1111 1110)1、首先,数字除了我们平时最长使用的十进制数外,还有二进制,八进制,十六进制等。这里我们的原码,...

什么是一个数的原码,反码,补码
答:原码,反码,补码针对的是定长二进制存储器表示的有符号整数。正数的原码,反码,补码都相同。负数的原码最高位为1,其他位为整数的绝对值(零有+0、-0之分)。负数的反码最高位为1,其他位为整数的绝对值按位取反(零有+0、-0之分)。负数的补码最高位为1,其他位为整数的绝对值按位取反再...

什么是原码 补码 反码
答:在计算机系统中,原码和反码,都是不存在的。=== 数值 0,在八位机中,就是 0000 0000。+1,就是加上一,即为:0000 0001。+2,就再加上一,即为:0000 0010。其他正数,依次递增即可。。。最后的是+127,即为:0111 1111。以上这些,就是正数的补码。--- 负数,就是从 0 往下减...