以下內容參考菜鳥教學,記錄自己的學習。
整型、實型(常數)、字元型數據可以混合運算。運算中,不同類型的數據先轉化爲同一型別,然後進行運算。
自動轉換按從低階到高階順序:
低 ------------------------------------> 高
byte,short,char—> int —> long—> float —> double
數據型別轉換必須滿足如下規則:
int i =128;
byte b = (byte)i; //b=-128
//因爲byte型別時8位元,範圍【-128,127】,所以當int強制轉換爲byte型別時,128會溢位
int a = (int)23.5; //a的值爲23
int b = (int)-23.5; //b的值爲-23
必須滿足轉換前的數據型別的位數要低於轉換後的數據型別(通俗說就是:小的型別自動轉化爲大的型別)
public class ZiDongLeiZhuan{
public static void main(String[] args){
char c1='a';//定義一個char型別
int i1 = c1;//char自動型別轉換爲int
System.out.println("char自動型別轉換爲int後的值等於"+i1); //結果 97
char c2 = 'A';//定義一個char型別
int i2 = c2+1;//char 型別和 int 型別計算,char型別c2自動轉換爲int型
System.out.println("char型別和int計算後的值等於"+i2); //66
}
}
public class QiangZhiZhuanHuan{
public static void main(String[] args){
int i1 = 123;
int i2 = 128;
byte b = (byte)i1;//強制型別轉換爲byte
System.out.println("int強制型別轉換爲byte後的值等於"+b);
byte c = (byte)i2; //c的值爲-128,溢位。
int d = (int)12.55; //d的值爲12,損失精度
}
}
這裏居然可以直接將int型10,20(整數的預設型別是 int)賦值給byte型別的變數,這是我看到這段程式碼的想法,後面去看了一些資料,真的是