不同型別資料之間在進行運算時,結果型別應該如何確定

2021-10-03 17:22:01 字數 781 閱讀 2878

不同型別的資料進行運算,如果乙個運算子兩側的資料型別不同,需要先自動進行型別轉換,使兩者具有同一型別,然後進行運算,現將規律總結如下:

系統有預設的轉化規則,就是從精度底的轉化為精度高的,避免計算時精度的丟失 具體轉換規則如下 char --> short --> int —> unsigned --> long --> unsigned long --> float --> double

+、-、 *、 /運算的兩個數中有乙個數為float或double型,結果是double型,因為系統將所有float型資料都先轉換為double型,然後進行運算;

若int型與float或double型資料進行運算,先將int型和float型轉換為double型,然後進行運算,結果為double型;

char型與int型資料進行運算,就是把字元的ascii碼與整型資料進行運算;

如:20+'b'=20+66=86

兩個int型相除,不管是否有餘數,結果都為整型;如:5/10 輸出是整數部分:0

強制型別轉換的一般形式為:(型別名)(表示式),將表示式整體的輸出結果轉換,若寫成(int)x+y,則是將x先轉換為整型,再與y想加,

如上試中: 5/10的輸出結果為:0

5.0/10的輸出結果為:0.5

(fioat)(5/10)的輸出結果為:0.00

(float)5/10的輸出結果為:0.5

原文

不同型別的資料進行運算

今天同學在筆試中遇到乙個問題乙個無符號的數加乙個有符號的負數最後的結果是什麼?例子如下 int a 19 unsigned int b 10 if a b 0 else 問的其實就是有符號的和無符號的相加最終的型別是什麼型別?c 提供了乙個叫t include 用於檢視資料的內型標頭檔案 具體使用如...

C 不同型別變數進行運算時的型別轉換總結

int型乘以double型,結果是double型 int型轉換為double型再運算 double型轉int型,結果是int型 捨去小數點及其後的數字 自動轉換遵循以下規則 若參與運算量的型別不同,則先轉換成同一型別,然後進行運算。轉換按資料長度增加的方向進行,以保證精度不降低。如int型和long...

不同型別的資料進行比較

參考5.built in types中的說明,cpython按照如下規則進行比較 自己的總結 任何兩個物件都可以比較 相同型別的物件 例項 如果是數字型 int float long complex 則按照簡單的大小來比較 如果是非數字型,且類 型 中定義了 cmp 含 gt lt 等 則按照 cm...