byte b1= 1;
byte b2 =2;
byte b3 =b1+b2;
這種編譯為什麼會報錯,求指導?
當使用+、-、*、/、%運算符對基本類型進行運算時,遵循如下規則:
只要兩個操作數中有一個是double類型的,另一個將會被轉換成double類型,並且結果也是double類型;
否則,只要兩個操作數中有一個是float類型的,另一個將會被轉換成float類型,並且結果也是float類型;
否則,只要兩個操作數中有一個是long類型的,另一個將會被轉換成long類型,並且結果也是long類型;
否則,兩個操作數(包括byte、short、int、char)都將會被轉換成int類型,並且結果也是int類型。
當使用+=、-=、*=、/=、%=、運算符對基本類型進行運算時,遵循如下規則:
運算符右邊的數值將首先被強制轉換成與運算符左邊數值相同的類型,然後再執行運算,且運算結果與運算符左邊數值類型相同。
比如上面 b3+=b1;b3+=b2;這樣都是沒問題的。