C語言之數據類型②——浮點類型


1.浮點類型的種類:

  • float——4字節
  • double——8字節
  • long double——8字節(某些平台編譯器,可能是16字節)

float x=1.23;——建議(float x=1.23F;)

double y=1.23;

long double z=1.23;

 

2.浮點類型的存儲格式

float和double在存儲方式上都是遵從IEEE編碼規范的

 

以8.25為例

(1)整數部分十進制整數轉二進制(除法)

  

 

所有的整數一定能完整的轉換成二進制

(2)小數部分轉二進制(乘法)

  

 

   總結:用二進制描述小數不可能完全精確,就像十進制描述1/3不能完全描述

 因此8.25轉成浮點存儲就是    1000.01——這個數用二進制的科學計數法表示就是   1.00001*23     指數為3,尾數為00001

  

 

 就是:01000001000001000000000000000000

  用計算器轉為16進制就是:41040000

反匯編查看:

  

 

 

 

3.浮點類型的精度(整數+小數的位數)

float和double的精度是由尾數的位數來決定的

float:2^23=8388608,一共7位,這意味這最多能有7位有效數字;

double:2^52=4,503,599,627,370,496,一共16位,這意味着最多能有16位有效數字


免責聲明!

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



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