计算机数的表示

1.计算机中定点数的表示ui

表1 定点数的表示spa

 

+18table

-18扩展

8位原码方法

8位补码im

16位原码layout

16位补码top

00010010img

00010010计算机

0000000000010010

0000000000010010

10010010

11101110

1000000000010010

1111111111101110

计算机中定点数通常用补码表示,好处是能够把减法变加法。对一个数的补码取负数,只要对每一位(包括符号位)按位取反,并在末尾加1。作减法时,A-B=A+(B的负数)=A+(B按位取反加1)。加法和减法都会有溢出,判断方法:若是A和B的最高位同样,且结果的最高位与A和B的最高位不同,表示溢出。此外,还能够用双符号位,结果中两位符号位不一样表示溢出。因为此方案须要额外占用一位寄存器空间,所以计算机一般不采用。

2.计算机中的浮点数表示

定点数表示范围有限,太大或过小的数都不能表示,精度也有限,用定点数作除法不精确,须要一种方法表示实数,计算机中叫作浮点数。如今计算机中一般使用IEEE 754标准。

浮点数有3部分组成:符号位、阶码和尾数。在32位浮点数中,符号位为1位,表示正负,尾数32位,表示数值,阶码8位,表示乘以2的多少次方。其中,8位阶码表示0~255的数,负阶码用阶码值减去偏移量127表示。浮点数的数值等于(尾数X2(阶码-偏移值))。

 

浮点数有单精度和双精度之分,单精度是32位,双精度是64位,还有扩展的单精度和双精度,例如X86中采用80位表示扩展的双精度,其它处理器采用64位。 

 

 

特殊状况:以单精度为例,阶码e的值在0~255之间,其中0和255表示特殊的数,1~254表示正常的数。

(1)阶码范围是0<e<255时表示规格化数

(2)阶码为0时表示非规格化数或正负零。当阶码等于0时,若是f全等于0表示正0和负0,若是f不全等于0表示非规格化数.

(3)阶码为255时表示无穷大或者非数。阶码等于255,尾数为0,符号位0或1分别表示正无穷大或负无穷大。若是尾数不为0表示非数。非数有两个,Quiet NaN和Signaling NaN。Quiet NaN尾数的最高位等于0,运算结果仍是Quiet NaN。Signaling NaN的最高位等于1,若是参与运算将产生中断。

 

注:(1)规格化是指经过移位将浮点数尾数最高位变为1。非规格数用于填补最小数和0之间的空隙。

(2)IEEE754标准格式

相关文章
相关标签/搜索