数的表示方法

    技术2025-05-03  27

    数在计算机中是以二进制形式表示的。数分为有符号数和无符号数。对于无符号数,机器数的所有位表示数值。对于有符号数,机器数的最高位为符号位,其余位表示数值。

    如果约定小数点的位置在机器数的最低数值位之后,则是纯整数;如果约定小数点的位置在机器数的最高数值位之前,则是纯小数。

    如果小数点的位置不变,叫做定点数;小数点的位置不固定,叫做浮点数。

    原码、反码、补码都是有符号定点数的表示方法。 一个有符号定点数的最高位为符号位,0是正,1是负。

     

    以下都以机器字长为8举例。

    原码表示法:

    原码就是这个数本身的二进制形式。 例如: [+1]=00000001;[-1]=10000001

    0的原码表示方法不唯一:[+0]=00000000,[-0]=10000000

    机器字长为n的原码表示法能表示的数的个数为:2n-1(0的表示占用了2个编码)

     

    反码表示法:

    正数的反码和原码相同;负数的反码则是其原码除符号位外按位取反。例如:

    [+1]=00000001;[-1]=11111110

    0的反码表示方法不唯一:[+0]=00000000,[-0]=11111111

    机器字长为n的反码表示法能表示的数的个数为:2n-1(0的表示占用了2个编码)

     

    补码表示法:

    正数的补码和原码相同;负数的补码则是其反码末位加1。例如:

    [+1]=00000001;[-1]=11111111

    0的补码表示唯一:[+0]=00000000=[-0]

    机器字长为n的补码表示法能表示的数的个数为:2n

    一个数和它的补码是可逆的。

    为什么要设立补码呢?

    第一是为了能让计算机执行减法:

    [a-b]=[a]+[-b]第二是让0的表示唯一

     

    最新回复(0)