《Java 學習疑問》---1--- 不同數值型變量 運算時類型轉換問題

在這裏插入圖片描述
上圖爲課件截圖
根據上圖意思 不同數值型變量 運算時 容量小的數據類型會自動轉爲 容量大的數據類型,數據類型容量如下圖:
在這裏插入圖片描述
按照以上解釋 個人理解爲 byte類型容量 1字節 short 2字節 則兩種數據類型運算 結果應該時 short類型數據
但是運行下邊代碼時 出錯

package com.company;

public class Main {
    public static void main(String[] args) {
	    byte b = 1;
	    short s = 12;
	    short s2 = b + s; 
        System.out.println(s2);
    }
}

異常:
在這裏插入圖片描述

原因: 數值型的 數據類型 運算的結果默認是 int類型數據,所以s2 聲明爲 short 時不行的

數字類型的運算規則:

  • 1、有多種類型的數據混合運算時,系統首先自動將所有數據轉換成容量最大的那種數據類型,然後再進行計算。數字類型的從小到大分別是byte、short、int、long、float、double。
  • 2、數字類型的運算中,多個相同類型變量參與的運算,變量要先轉換爲相對應的數據類型的默認類型(比如兩個byte類型的變量相加,會先把兩個byte類型的變量轉換成默認的int類型之後再計算,得到的結果是int類型)。這種情況適用於變量的數據類型的容量比默認類型的容量小,(比如byte,short,都比int小)
  • 3、byte,short,char之間不會相互轉換,他們三者在計算時首先轉換爲int類型。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章