java數據類型轉換(自動轉換、強制轉換)、ASCII編碼表

目錄

數據類型轉換

自動類型轉換 (隱式)

轉換規則

列:自動類型轉換

強制類型轉換(顯示)

轉換格式:

注意事項

列:強制類型轉換

ASCII編碼表


數據類型轉換

自動類型轉換 (隱式)

自動轉換:將 取值範圍小的類型 自動提升爲 取值範圍大的類型

轉換規則

範圍小的類型向範圍大的類型提升, byteshortchar 運算時直接提升爲 int

byteshortchar‐‐>int‐‐>long‐‐>float‐‐>double

列:自動類型轉換

	public static void main(String[] args) {
		System.out.println(1024); // 這就是一個整數,默認就是int類型
		System.out.println(3.14); // 這就是一個浮點數,默認就是double類型
		
		// 左邊是long類型,右邊是默認的int類型,左右不一樣
		// 一個等號代表賦值,將右側的int常量,交給左側的long變量進行存儲
		// int --> long,符合了數據範圍從小到大的要求
		// 這一行代碼發生了自動類型轉換。
		long num1 = 100;
		System.out.println(num1); // 100
		
		// 左邊是double類型,右邊是float類型,左右不一樣
		// float --> double,符合從小到大的規則
		double num2 = 2.5F;
		System.out.println(num2); // 2.5
		
		// 左邊是float類型,右邊是long類型,左右不一樣
		// long --> float,範圍是float更大一些,符合從小到大的規則
		// 也發生了自動類型轉換
		float num3 = 30L;
		System.out.println(num3); // 30.0
	}

強制類型轉換(顯示)

強制類型轉換:將 取值範圍大的類型 強制轉換成 取值範圍小的類型

轉換格式:

數據類型 變量名 = (數據類型)被轉數據值;

範圍小的類型  範圍小的變量名 = (範圍小的類型) 原本範圍大的數據;

注意事項

    1. 強制類型轉換一般不推薦使用,因爲有可能發生精度損失、數據溢出。
    2. byte/short/char這三種類型都可以發生數學運算,例如加法“+”.
    3. byte/short/char這三種類型在運算的時候,都會被首先提升成爲int類型,然後再計算。
    4. boolean類型不能發生數據類型轉換

列:強制類型轉換

	public static void main(String[] args) {
		// 格式:範圍小的類型 範圍小的變量名 = (範圍小的類型) 原本範圍大的數據;
		int num = (int) 100L;
		System.out.println(num);
		
		// long強制轉換成爲int類型
		int num2 = (int) 6000000000L;
		System.out.println(num2); // 1705032704
		
		// double --> int,強制類型轉換
		int num3 = (int) 3.99;
		System.out.println(num3); // 3,這並不是四捨五入,所有的小數位都會被捨棄掉
		
		char zifu1 = 'A'; // 這是一個字符型變量,裏面是大寫字母A
		System.out.println(zifu1 + 1); // 66,也就是大寫字母A被當做65進行處理
		// 計算機的底層會用一個數字(二進制)來代表字符A,就是65
		// 一旦char類型進行了數學運算,那麼字符就會按照一定的規則翻譯成爲一個數字
		
		byte num4 = 40; // 注意!右側的數值大小不能超過左側的類型範圍
		byte num5 = 50;
		// byte + byte --> int + int --> int
		int result1 = num4 + num5;
		System.out.println(result1); // 90
		
		short num6 = 60;
		// byte + short --> int + int --> int
		// int強制轉換爲short:注意必須保證邏輯上真實大小本來就沒有超過short範圍,否則會發生數據溢出
		short result2 = (short) (num4 + num6);
		System.out.println(result2); // 100
	}

ASCII編碼表

將所有的英文字母,數字,符號都和十進制進行了對應,因此產生了世界上第一張編碼表ASCII

American Standard Code for Information Interchange 美國標準信息交換碼)

編碼表 :就是將人類的文字和一個十進制數進行對應起來組成一張表格。

public static void main(String[] args) {
	char zifu1 = '1';
	System.out.println(zifu1 + 0); // 49
	
	char zifu2 = 'A'; // 其實底層保存的是65數字
	
	char zifu3 = 'c';
	// 左側是int類型,右邊是char類型,
	// char --> int,確實是從小到大
	// 發生了自動類型轉換
	int num = zifu3;
	System.out.println(num); // 99
	
	char zifu4 = '中'; // 正確寫法
	System.out.println(zifu4 + 0); // 20013
}

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章