总结原码,反码和补码的表示方法和运算规则.为什么在计算机中大多采用补码

如题所述

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

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

补码,就是一个【代替负数运算的正数】。

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

计算机中,只要配置一个加法器,就可以加、减通用了。

原码和反码,都没有这种功能,所以,计算机中不使用它们。

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

正数,怎么就能代替负数呢?

且看 2 位 10 进制:

  25 - 1 = 24

  25 + 99 = (一百) 24

只要舍弃进位,+99 就能当做-1 使用。

+99 就称为-1 的补数。

计算公式: 补数 = 负数 + 10^n, n 是位数。

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

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

8 位 2 进制的范围:0000 0000~1111 1111(十进制 255)。

求补码的计算公式:

  负数的补码 = 负数 + 2^8 = 负数 + 256。

  正数,不需任何变换,直接就可以进行计算。

  所以,正数,并不存在补码。

-1 的补码是:-1 + 256 = 255 = 1111 1111。

-2 的补码是:-2 + 256 = 254 = 1111 1110。

。。。

-128 的补码是: 128 = 1000 0000。

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

运算实例: 7 - 2 = 5,用补码计算如下:

      7 = 0000 0111

 -2 的补码 = 1111 1110

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

  得:(1)  0000 0101 = 5

舍弃进位,结果,就完全正确。

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

补码,就是补码,与原码反码毫无关系。

从“取反加一”来学习补码,不但不能理解补码的意义,而且还难以求出-128 的补码。

为了解释-128 的补码,还得编造许多瞎话。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-10-27
(1)原码、反码、补码表示的简易记忆法:
正数的原码、反码、补码相同
正数符号位为0,负数符号位为1
原码, 除符号位外的数值位与真值相同
负数的反码 =原码(除符号位外)每位取反;
负数的补码 = 反码 + 1;

(2)运算法则内容篇幅多,请自行翻书本或从网页下载

(3)补码运算的最大特点是可用加法代替减法。例如:
已知X=+1001011,Y=+1101011,运用补码运算规则计算 X-Y的值。
[X]补 = 0100 1011
[-Y]补 = 1001 0101 (+
--------------------
1110 0000
Cs⊕Cp = 0⊕0 = 0 ,无溢出
(Cs是符号位的进位,Cp是最高数值位的进位,⊕表示异或
[X-Y]补 = 1110 0000
[X-Y]反 = 1101 1111
[X-Y]原 = 1010 0000
X-Y = -010 0000B = -32D
而且,除法运算求商及余数亦用到补码减法。本回答被提问者和网友采纳
相似回答