定點數和浮點數


  任何一個數均可以表示為:(N)R=±S×R±e  

 

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

  S:尾數。代表數N的有效數字。計算機中一般表示為純小數。

  e:階碼(指數)。代表數N的小數點的實際位置。一般表示為純整數。

 

一、定點數

  定點數:約定計算機中所有數據的小數點位置均是相同的,而且是固定不變的,即階碼e的取值固定不變的機器數表示。

  定點數的兩種表示方法:

    定點小數:e=0,表示純小數,小數點在符號位與最高數值位之間。  定點整數:e=n,表示純整數,小數點在最低有效數值位之后,在最低位的右邊,不占位

                  

 

   【例】

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

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

 

二、浮點數

   浮點數用類似(N)R=±S×R±e科學計數法來表達,比如1001.101的規范浮點數表達為1.001101×23

   浮點數的小數點位置不是固定,而是可以浮動的,即e的取值可變。利用改變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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM