1. 程式人生 > >C語言之實型資料型別

C語言之實型資料型別

實型資料型別指的就是浮點數或實數

1、實型資料型別的分類

型別說明符

位元數(位元組數)

有效數字

數的範圍

float

32(4)

      6~7

-10的38次方~10的38次方      

double

64(8)

    15~16

     -10的308次方~10的308次方

由以上內容可以看出:

(1)實型資料沒有辦法精確的表示所有數字,因此表示的範圍大

(2)相鄰兩個資料的距離是不等距的

(3)每一種實型資料都有自己的有效位數和精度

2、實型資料的表示

1) 十進位制數形式
由數碼0~ 9和小數點組成。 例如:0.0、25.0、5.789、0.13、5.0、300.、-267.8230 等均為合法的實數。
注意,必須有小數點。
2) 指數形式
由十進位制數,加階碼標誌“e”或“E”以及階碼(只能為整數,可以帶符號)組成。其一般形式為:
    a E n(a為十進位制數,n為十進位制整數)
其值為 a*10n。如:2.1E5 (等於2.1*105) 3.7E-2 (等於3.7*10-2) 0.5E7 (等於0.5*107) -2.8E-2 (等於-2.8*10-2)
以下不是合法的實數:
345 (無小數點)
E7 (階碼標誌E之前無數字)
-5 (無階碼標誌)
53.-E3 (負號位置不對)
2.7E  (無階碼)

3、C語言中float和double資料在記憶體中的表示

 

前面的符號位很容易判斷為0或者是1,指數部分稱之為階碼,這個階碼部分是由偏置值(127或1111111)和階碼真值相加得到的,階碼真值符合IEEE-75標準,這個標準規定了是這個數一定能寫成1.--*2的多少次方的形式,尾數部分的儲存是原碼的儲存。