float數據在內存中存儲方式


float類型數字在計算機中用4個字節存儲。遵循IEEE-754格式標准:

一個浮點數有3部分組成:

   符號部分,0 表示正,1表示負。

    底數部分 使用二進制數來表示此浮點數的實際值,底數部分實際是占用24bit的一個值,但是最高位始終為1,所以,最高位省去不存儲,在存儲中占23bit科學計數法。

    指數部分 占用8bit的二進制數,可表示數值范圍為0-255。

但是指數可正可負,所以,IEEE規定,此處算出的次方必須減去127才是真正的指數。所以,float類型的指數可從-126到128。
所以格式為:

SEEE EEEE EMMM MMMM MMMM MMMM MMMM MMMM
  • S表示浮點數正負
  • E指數加上127后的值得二進制數據
  • M底數

舉例:
17.625在內存中的存儲

首先要把17.625換算成二進制:10001.101。

整數部分,除以2,直到商為0,余數反轉。
小數部分,乘以2,直到乘位0,進位順序取。

將10001.101右移,直到小數點前只剩1位:1.0001101 * 2^4 因為右移動了四位。

底數:因為小數點前必為1,所以IEEE規定只記錄小數點后的就好。所以,此處的底數為:0001101。
指數:實際為4,必須加上127(轉出的時候,減去127),所以為131。也就是10000011。
符號部分是正數,所以是0。

綜上所述,17.625在內存中的存儲格式是:

01000001 10001101 00000000 00000000   


免責聲明!

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



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