当前位置:主页 > 电脑基础 > 基础知识

第三节 原码、反码和补码

时间:2010-08-18 | 栏目:基础知识 | 点击:

第三节 原码、反码和补码

    计算机中参与运算的数有正负之分,计算机中的数的正负号也是用二进制表示的。用二进制数表示符号的数称为机器码。常用的机器码有原码、反码和补码。

一、原码

求原码的方法:设X;若X≥0,则符号位(原码最高位)为0,X其余各位取值照抄;若X≤0,则符号位为1,其余各位照抄。
【例1】X=+1001001   [X] = 01001001
【例2】X=-1001001   [X] = 11001001

二、反码

求反码的方法:设X;若X≥0,则符号位(原码最高位)为0,X其余各位取值照抄;若X≤0,则符号位为1,其余各位按位取反
【例3】X=+1001001   [X] = 01001001
【例4】X=-1001001   [X] = 10110110

三、补码

求补码的方法:设X;若X≥0,则符号位(原码最高位)为0,X其余各位取值照抄;若X≤0,则符号位为1,其余各位按位取反后,最低位加1
【例5】X=+1001001   [X] = 01001001
【例6】X=-1001001   [X] = 10110111

四、补码加减法
  
计算机中实际上只有加法,减法运算转换成加法运算进行,乘法运算转换成加法运算进行,除法运算转换成减法运算进行。用补码可以很方便的进行这种运算。

1、补码加法
   [X+Y] = [X] + [Y]
【例7】X=+0110011,Y=-0101001,求[X+Y]
    [X]=00110011  [Y]=11010111
    [X+Y] = [X] + [Y]= 00110011+11010111=00001010
    注:因为计算机中运算器的位长是固定的,上述运算中产生的最高位进位将丢掉,所以结果不是
        1
00001010,而是00001010。

2、补码减法
   [X-Y] = [X] - [Y]= [X] + [-Y]
   其中[-Y]称为负补,求负补的方法是:对补码的每一位(包括符号位)求反,最后末位加“1”。
【例8】X=+0111001,Y=+1001101,求[X-Y]
    [X]=00111001  [Y]=01001101  [-Y]= 10110011
    [X-Y] = [X] + [-Y]= 00111001+10110011=11101100

五、数的表示范围
    通过上面的学习,我们就可以知道计算机如果用一个字节表示一个整数的时候,如果是无符号数,可以表示0~255共256个数(00000000~11111111),如果是有符号数则能表示-128~127共256个数(10000000~01111111)。如果两个字节表示一个整数,则共有65536个数可以表示,大部分程序设计语言中整数的范围都是-32768~32767的原因,可以看出这种整数类型是16位的有符号数,而且是补码表示的。

您可能感兴趣的文章:

相关文章