賦值運算子與普通運算的不同之處

2021-10-24 12:41:53 字數 867 閱讀 6346

(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 注意 諸如 這樣形式的賦值運算子,會將結果自動強轉成等號...