邏輯運算子 位運算子與三元運算子

2021-09-24 19:05:40 字數 2402 閱讀 8700

& :邏輯與

| :邏輯或

! :邏輯非

&& :短路與

|| :短路或

^ :邏輯異或

aba&ba&&ba|ba||b!a^a

true

true

true

true

true

true

false

false

true

false

false

false

true

true

false

true

false

true

false

false

true

true

true

true

false

false

false

false

false

false

true

false

^a: (當a==b則false,當a!=b則true)

區分&&&

&&一旦遇到必定為false的條件時,不執行以後的條件,直接跳轉判定結果。

同理,||一旦遇到必定為true的條件時,不執行以後的條件,直接跳轉判定結果。

<<:左移,例:3<<2=12 --> 3x2x2=12

(詳解:二進位制向左移兩位,最右邊補兩個0,可得出規律:每向左移動n位,則相當於在原有基礎上乘以乙個2的n次冪(如果移動到首位為1時,則變成負數))

>>:右移,例:3>>1=1 --> 3/2=1

(詳解:二進位制向右移一位,如果當前符號位是0則用0補,如果符號位是1則用1補,每向右移動n位,則相當於在原有基礎上除以2的n次冪)

>>>:無符號右移,例:-3>>>1=1 --> 3/2=1

(詳解:與》的區別是無論最符號位是0還是1都用0補)

&:與運算,例:6&3=2

(詳解:6的二進位制與3的二進位制對位比較,如果對位都是1則是1,如果對位有乙個是0則是0)

|:或運算,例:6|3=7

(詳解:6的二進位制與3的二進位制對位比較,如果對位有乙個是1則是1,如果對位都是0則是0)

^:異或運算,例:6^3=5

(詳解:6的二進位制與3的二進位制對位比較,如果對位都相同則是0,對位不相同是1)

~:取反運算,例:~6=-7

(詳解:6的二進位制,包括符號位在內取反)

注:位運算子是直接對整數的二進位制進行的運算

(條件表示式(boolean型別))?表示式1:表示式2 //表示式中可以巢狀三元運算子

條件表示式為ture,執行表示式1,反之,執行表示式2

例: x > y ? x : y

如果x大於y則輸出x,否則輸出y

凡是可以使用三元運算子的地方,都可以改寫成if-else,反之,不能改寫成if-else。

如果即可使用三元運算子又可使用if-else,則選擇三元運算子。

因:簡潔、執行效率高。

例題:最高效方式的計算2 * 8 => 2 << 3 或者 8 << 1

交換兩個變數的值(num1,num2)

方法一://定義變數的方式

int temp = num1;

num1 = num2;

num2 = temp;

方法二://好處:不用定義變數,壞處:兩個值相加可能超出範圍,侷限於數值型

num1 = num1 + num2;

num2 = num1 - num2;

num1 = num1 - num2;

方法三:

num1 = num1 ^ num2;

num2 = num1 ^ num2;

num1 = num1 ^ num2;

以上。

如有不合理的地方或更好的建議,請不吝賜教,謝謝!

關係運算子 邏輯 運算子與三元運算子

1 關係運算子 返回值是boolean 一般用於判斷語句當中 等於 不等於 2 邏輯運算子 邏輯與 邏輯或 邏輯非運算 短路與 短路或 與 運算子 所有條件都為真,則結果為真,有乙個為假,則為假。boolean b b condition1 condition2 先求1,2的值,然後進行判斷 b c...

邏輯運算子與位運算子

1.運算子 用於對邏輯值的取反運算。當邏輯值為true時,經過取反變為false 當邏輯值為false時取反成true。2.運算子 運算子 用於對邏輯值進行異或運算。當運算兩側同時為true或false時,運算結果為false,否則為true。3.運算子 和 運算子 和 均用於邏輯與運算。當兩側同時...

位運算子與三元運算子

1 按位與運算子 int m 6,b,c 4,d,t b m c 按位與,兩個操作位數中位都為1,結果才為1,否則結果為0。轉換為二進位制 m 6,0110 c 4,0100 結果為 0100 b 4 system.out.println b 2 按位或運算子 int m 6,b,c 4,d d m...