原码反码和补码

为什么补码和反码的符号位可作为数值位的一部分看待,和数值位一起参加运算;而原码的符号位不允许和数值位同等看待,必须分开进行处理?

在计算机内,数据是以补码的形式存在的,在计算机中没有负数这个概念,意思就是计算机内部是没有减法的,他的减法是用加法运算实现的,所以要做到这步,补码和反码的符号位必须作为数值的一部分看待,不然计算机怎么知道你是正数还是负数呢?(思考一下)
1、一个正整数,当用原码、反码、补码表示时,符号位都固定为0,用二进制表示的数位值都相同,即三种表示方法完全一样
2、一个负整数,当用原码、反码、补码表示时,符号位都固定为1,用二进制表示的数位值都不相同,即三种表示方法完全一样。此时由原码表示法变成补码表示法的规则如下:
①原码符号位为1不变,整数的每一位二进制数位求反得到反码
②反码符号位为1不变,反码数值为最低位加1,得到补码
温馨提示:内容为网友见解,仅供参考
第1个回答  2021-08-04

有一个小孩,很小很小的,他只认识 100 个数,也不会做减法。

那么,减一,你就可以告诉他,用加 99 代替:


比如:

36 - 1 = 35

36 + 99 = (1) 35


忽略进位 100,结果不是一样的吗?

那么:

99,就是-1 的补数。

98,就是-2 的补数。

。。。

利用补数,就可以把减法,转换为加法运算。

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

在计算机中,数据,都是以二进制存储的,称为:代码。

八位二进制的范围是:0000 0000 ~ 1111 1111。

用十进制表示,就是:0~255,共有 256 组代码。

正数,直接参加运算即可,用不着求补码。

那么,负数呢?

-1 的补码,就是 255(1111 1111);

-2 的补码,就是 254(1111 1110);

。。。

-128 的补码,就是 128(1000 0000);

这些负数,与补码之间的关系式,小学生都可以推算出来。

根本就不用扯到“原码和反码”。

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

第2个回答  2022-08-13

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

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

所以,补码和它们的转换,也是不存在的。

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

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

利用补码,减法,就可以用加法运算来代替。

由此,就可以简化计算机的硬件。

如“2 位 10 进制的运算”:

   24 - 1 = 23

   24 + 99 = (一百) 23

舍弃进位( 一百),+99 就和-1 等效。

加法,也就相当于减法了。

+99 怎么算出来?

   +99 =  10^2-1

式中的 10^n,是 n 位数的计数周期。

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

补码的定义式如下:

 零和正数: [ X ]补 = X,    X >= 0;

 负数补码: [ X ]补 = 周期 + X, X < 0。

利用定义式,直接就可以求出 X 的补码。不需要讨论原码和补码。

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

学习补码,重点是理解补码的意义。

从“原码反码符号位取反加一”,这就走错道了。

第3个回答  2010-10-03
在一起运算。如果加起来的符号位得负数,那么就是错误的码。
第4个回答  2020-01-09

什么是原码、补码和反码?
原码、补码和反码是计算机中表示数值的基本方式,它们之间的关系可以通过以下公式进行计算:原码 = 反码 + 1 反码 = 补码 - 1 补码 = 2^n - 1,其中n为数值的位数 例如,假设我们要计算一个8位有符号整数的原码、补码和反码,则可以按照以下步骤进行计算:1. 将8位二进制数10000001转换为十进制...

原码补码反码怎么计算?
1、原码符号位1不变,整数的每一位二进制数位求反,得到反码。2、反码符号位1不变,反码数值位最低位加1,得到补码。方法:(1)正整数的原码,反码和补码计算。【符号位为0,原码=反码=补码】(2)负整数的原码,反码和补码计算,先求原码,再求反码,最后求补码。(3)根据补码求真值,一般使...

原码反码和补码有什么区别?
原码就是符号位加上真值的绝对值, 即用第一位表示符号, 其余位表示值,如\\r\\n[+1]原 = 0000 0001\\r\\n[-1]原 = 1000 0001\\r\\n正数的反码是其本身\\r\\n负数的反码是在其原码的基础上, 符号位不变,其余各个位取反.\\r\\n[+1] = [00000001]原 = [00000001]反\\r\\n[-1] = [10000...

什么是补码原码和反码
计算机中的符号数有三种表示方法,即原码、反码和补码,具体如下:1、原码。就是二进制定点表示法,原码表示法在数值前面增加了一位符号位,正数该位为0,负数该位为1,其余位表示数值的大小,即最高位为符号位,0表示正,1表示负,其余位表示数值的大小。2、反码。是数值存储的一种,多应用于系统...

原码反码和补码有什么区别?
正数的反码是其本身,负数的反码是在其原码的基础上, 符号位不变,其余各个位取反。正数的补码就是其本身,负数的补码是在其原码的基础上符号位不变,其余各位取反, 最后+1(即在反码的基础上+1)。正数的原码,反码,补码都一样。原码(true form)是一种计算机中对数字的二进制定点表示方法。原码...

原码反码补码是多少
+35:原码=反码=补码=0100011 -35:原码:1100011;反码:1011100;补码:1011101;

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

什么是原码、反码、补码?
原码转换为反码:符号位不变,数值位按位取反;原码转换为补码:符号位不变,数值位按位取反,末尾在+1;例2:-66 66的二进制:1000010,所以-66的原码:1 1000010  补码:1 0111101 反码:1 0111110 二、二进制原码、反码、补码的加减运算及标志位 1.补码加减基本公式 加法:整数 [...

原码、反码、补码之间怎么快速转换,大神带你轻松学
一、原码、反码、补码的转换过程如下:在原码表示中,0有两种表示方式:[+0]原=0000000,[-0]原=1000000。反码表示中,0也有两种表示形式:[+0]反=0000000,[-0]反=11111111。补码表示中,0有唯一的编码:[+0]补=0000000,[-0]补=0000000。计算机采用这些编码方法,便于运算,提高运算速度。原码...

正数的原码反码补码到底是不是一样的?
C语言里正数的原码反码补码是一样的。符号位是0,原码,反码,补码:00001010;补码是为负数想出来的办法,目的是减法可以用加补码的方法实现。补码可用反码加1得来,于是又有了负数的反码。计算机里有硬件“加法器”,有了补码,减法也可以用加法器做了。计算机里运算速度,硬件远快于软件,这是做出反码...

相似回答