1. 程式人生 > 實用技巧 >C語言資料型別轉換

C語言資料型別轉換

在嵌入式開發中,常常涉及到資料型別的轉換。經過比較,將幾種經典案例總結如下。歡迎大家交流。


1、int 與 float 的轉換

1 int a = 3;
2 int b = 4;
3 float c;
4 c = a/b;

上面程式碼執行結果為0.000000

int a = 3;
int b = 4;
float c;
c = (float)a/b;

上面程式碼執行結果為0.750000

1 int a = 3;
2 int b = 4;
3 float c;
4 c = (float)(a/b);

上面程式碼運算結果為0.000000

1 int a = 3;
2 int b = 4;
3 float c;
4 c = a/(float
)b;

上面程式碼運算結果為0.750000

   第一段程式碼,a為int型別,b為int型別,int型別的除法只保留整數。然後等式右邊的資料型別向等式左邊的資料型別隱式轉換。

  第二段程式碼,將a轉為float型別,然後在與b相除。b是int型別,a是float型別。b向a的型別轉換。則全部為float型別。故計算結果為浮點型。

   第三段程式碼,使用括號將a/b先運算,由於是整數的除法,所以運算結果為0,又因為等號右邊自動向等號左邊資料型別轉化,最終為0.000000。

第四段程式碼,將b轉為float型別,然後在被a除,int除以float,低型別自動向高型別轉換。a/b變為float型別除法。故計算結果為0.000000。

  總結:等號右邊的資料型別會自動向等號左邊的資料型別轉換

     算式中,若存在資料型別不同的資料,等級的資料型別自動向等級的資料型別轉換。


2、float向int型別轉換