数的表示方法

来源:互联网 发布:web表单数据导出代码 编辑:程序博客网 时间:2024/04/28 19:38

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

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

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

原码、反码、补码都是有符号定点数的表示方法。
一个有符号定点数的最高位为符号位,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的表示唯一

 

原创粉丝点击