表達式:
1.異或(^):兩個數異或運算,相同位得0,不同位爲1
ex: 110(6)
111(7)--------
001(1)
異或可以用於兩個數的交換,舉個例子:
int a = 10,b = 20;
現在如何不使用第三個變量來交換他們兩個的值呢?
第一步,首先將兩個數進行異或運算並賦值給a
a(10) 00001010
b(20) ^00010100
--------------------------
00011110
a = a ^ b;
第二步,將得到的答案與b異或運算,就得到b
b(20) 00010100
a ^00011110
------------------------
00001010(得到10)
b = b ^ a;
第三步,將b與a異或
b(10) 00001010
a ^00011110
--------------------------
00010100(得到20)
a = a ^ b;
2.負數在計算機內以補碼的形式存放。
1.補碼:源碼取反+1。
ex:-3的補碼(由2的源碼取反得到)00000010(2)
-----------
11111101(-3的補碼)
現在根據補碼來源可以得到源碼=補碼-1取反;
11111101(-3補碼)
- 0000001
-----------------
~ 11111100(取反,最高位符號位不參與運算)
-----------------
10000011(-3的源碼)
3.位移運算(<< >>):
ex:int a = 1,c;
c = a >> 1;
System.out.println(c);//輸出c爲0;
4.表達式中的優先級用括號來體現。
5.三目運算符:條件?真:假;
ex: int score = 60;score < 60 ? "不及格":"及格";