其他分享
首页 > 其他分享> > 浮点数理解

浮点数理解

作者:互联网

  任何一个数均可以表示为:(N)R=±S×R±e

  R:基值。计算机中常用的R可取2、8、10、16等。

  S:尾数。代表数N的有效数字。计算机中一般表示为纯小数。

  e:阶码。代表数N的小数点的实际位置。一般表示为纯整数。

一、定点小数

  定点小数:约定计算机中所有数据的小数点位置均是相同的,而且是固定不变的,即阶码e的取值固定不变的机器数表示。

  定点小数的两种表示方法:

    e=0,表示纯小数,小数点在符号位与最高数值位之间。  e=n,表示纯整数,小数点在最低有效数值位之后

            

 

   【例】

    (123.45)10=12345×10-2=0.12345×103

    (11011.101)2=11011101×2-3=0.11011101×105

二、浮点小数

   浮点小数的小数点位置不是固定,而是可以浮动的,即e的取值可变,因此在机器中必须将e表示出来,浮点小数的表示如图

      

 

       尾数的位数决定了数据表示的精度,为带符号的纯小数。

    阶码的位数决定了数据表示的范围,为带符号的纯整数。

三、浮点数的规范化

  (1)如何尽可能多地保留有效数字?

  (2)如何保证浮点表示地唯一?

   规格化思想:尽可能去掉尾数中的前置“0”,尽量使小数点后第一位为“1”。对于二进制数,就是要满足:1/2≤|S|<1

  【例】0.001001×25的规格化

     0.001001×25规格化表示为:0.100100×23

四、原码规格化

 

 

   若[S]=Sf.S1S2..Sn,规格化标志是:S1=1,即:[S]=0.1xx...x 或 [S]=1.1xx...x。

  【例】

    [S]=0.1101101 → [S]=1.1101101  是规格化数

    [S]=0.0101101 → [S]=1.0101101  不是规格化数

五、补码规格化

   若[S]=Sf.S1S2..Sn,规格化标志是:Sf⊙S1=1,即:[S]=0.1xx...x 或 [S]=1.0xx...x。⊙指异或运算 

  【例】

    [S]=0.1101101 → [S]=1.0101101  是规格化数

    [S]=0.0101101 → [S]=1.1101101  不是规格化数

 六、IEEE 754浮点数标准

  IEEE 754标准在表示浮点数时,每个浮点数均由三部分组成:符号位S,指数部分E和尾数部分M。

    32位单精度浮点数表示格式如图

    

 

     S:数符,0表示“+”,1表示“-”。

     E:指数,即阶码部分。其中包括1位阶符和7位数值。采用移127码表示,移码值为127。即 阶码=127+实际指数值

     M:共23位。由于尾数采用规格化表示,所以IEEE 754 标准约定在小数点左部有一位隐含位为1,从而使尾数的实际有效位为24位,即尾数的有效值为1.M。

   【例】利用IEEE 754标准将数176.0625表示为单精度浮点数

       解析: ①将十进制转换二进制数:(176.0625)10=(10110000.0001)2

        ②对二进制数进行规格化处理:10110000.0001=1.01100000001×27

        ③将小数部分扩展为单精度浮点数所规定的23位尾数为0110,0000,0010,0000,0000,000

        ④求阶码,指数为7位数值,偏移量为127。E=7+127=134=(10000110)

        最后176.0625的单精度浮点数表示为:0 10000110 0110,0000,0010,0000,0000,000

 

标签:表示,0000,规格化,尾数,浮点数,小数点,理解
来源: https://www.cnblogs.com/jingchi/p/15913679.html