(1)1位元組byte=8bit位 (範圍-128至127)
(2)運算規則:自動型別提公升(byte(1位元組) 、short(2位元組)、char(2位元組) -> int (4位元組)-> long (8位元組)-> float(4位元組) -> double(8位元組)),1位元組=8bit。
首先需要了解:byte為什麼是-128到127
計算機中數值表示都是用補碼來表示的,為了方便減法的計算(將減法變成加法)產生的補碼(補碼詳解:
數值原碼
補碼-128
無法表示
1000 0000
-127
1111 1111
1000 0001
-126
1111 1110
1000 0010
00000 0000
0000 0000
1270111 1111
0111 1111
byte b =
127;
b = b +1;
//報錯
b +=1;
//-128
b +=2;
//-127
system.out.
println
(b);
通過結果可知,正常的運算因超出範圍會報錯,而+=混合賦值運算子,會使資料型別擴大,127+1= [0111 1111]補 + [0000 0001]補=[1000 0000]補,[1000 0000]補代表-128。同理127+2= [0111 1111]補 + [0000 0010]補=[1000 0001]補=[1111 1111]原= -127。很明顯結果並不正確,是按二進位制計算所得結果,因此混合賦值運算子,會使資料型別擴大。 賦值與條件運算子
賦值 begin a 1 b 2 3 a 1 b 5 a b b a a 5 b 1 a b 1 2 3 a 6 b 6 a b 1 2 3 a 6 b 3 x 0 x 0 a,b,c x,x 1 x 2 a 0 b 1,c 2 end 條件運算子 begin 比較兩個物件的值是否相等 a 1 b ...
運算子過載 賦值運算子的過載
有時候希望賦值運算子兩邊的型別可以不匹配,比如,把乙個int型別變數賦值給乙個complex物件,或把乙個 char 型別的字串賦值給乙個字串物件,此時就需要過載賦值運算子 注意 賦值運算子 只能過載為成員函式 賦值運算子過載例項示例 include include using namespace ...
2 6 算術運算子之賦值與比較運算子
2.6 賦值運算子 運算子 運算規則 範例 結果 賦值int a 2 加後賦值 int a 2,a 2 減後賦值 int a 2,a 2 乘後賦值 int a 2,a 2 整除後賦值 int a 2,a 2 取模後賦值 int a 2,a 2 注意 諸如 這樣形式的賦值運算子,會將結果自動強轉成等號...