重溫java隨記之運算子

2021-08-05 21:59:31 字數 2136 閱讀 3793

邏輯運算子:

邏輯運算子要求運算元的資料型別為邏輯型,其運算結果也是邏輯型值。

邏輯運算的資料和

邏輯運算子的運算結果是boolean型別。

邏輯與'&&'

,邏輯或'||'

,邏輯非'!'

,邏輯異或'^'

,邏輯與'&'

,邏輯或'|'

邏輯運算子的真值表:

a和b是邏輯運算的兩個邏輯變數;

兩種邏輯與(&&和&)的運算規則基本相同,兩種邏輯或(||和|)的運算規則也基本相同。

&和|運算是把邏輯表示式全部計算完,而&&和||運算具有短路計算功能。

對於&來說,如果左側條件為false,也會計算右側條件的值,而對於&&來說,如果左側的條件為false,則不計算右側的條件,這種現象被稱作短路現象。

所謂短路計算,是指系統從左至右進行邏輯表示式的計算,一旦出現計算結果已經確定的情況,則計算過程即被終止。

對於&&運算來說,只要運算子左端的值為false,則因無論運算子右端的值為true或為false,其最終結果都為false。

所以,系統一旦判斷出&&運算子左端的值為false,則系統將終止其後的計算過程;

對於 || 運算來說,只要運算子左端的值為true,則因無論運算子右端的值為true或為false,其最終結果都為true。

所以,系統一旦判斷出|| 運算子左端的值為true,則系統將終止其後的計算過程。

注:異或相同為false,相反則為true。
利用短路現象:
在程式設計時使用&&和||運算子,不建議使用&和|運算子。
位運算子主要針對二進位制,它包括了:「與」、「非」、「或」、「異或」。從表面上看似乎有點像邏輯運算子,但邏輯運算子是針對兩個關係運算子來進行邏輯運算,而位運算子主要針對兩個二進位制數的位進行邏輯運算。下面詳細介紹每個位運算子。

1.與運算子

與運算子用符號「&」表示,其使用規律如下:

兩個運算元中位都為1,結果才為1,否則結果為0,例如下面的程式段。

public class data13

}執行結果

a 和b 與的結果是:128

下面分析這個程式:

「a」的值是129,轉換成二進位制就是10000001,而「b」的值是128,轉換成二進位制就是10000000。根據與運算子的運算規律,只有兩個位都是1,結果才是1,可以知道結果就是10000000,即128。

10000001

10000000

-------------

10000000 =128

2.或運算子

或運算子用符號「|」表示,其運算規律如下:

兩個位只要有乙個為1,那麼結果就是1,否則就為0,下面看乙個簡單的例子。

public class data14

}執行結果

a 和b 或的結果是:129

下面分析這個程式段:

a 的值是129,轉換成二進位制就是10000001,而b 的值是128,轉換成二進位制就是10000000,根據或運算子的運算規律,只有兩個位有乙個是1,結果才是1,可以知道結果就是10000001,即129。

3.非運算子

非運算子用符號「~」表示,其運算規律如下:

如果位為0,結果是1,如果位為1,結果是0,下面看乙個簡單例子。

public class data15}10

---01 =1

4.異或運算子

異或運算子是用符號「^」表示的,其運算規律是:

兩個運算元的位中,相同則結果為0,不同則結果為1。下面看乙個簡單的例子。

public class data16

}執行結果

a 與 b 異或的結果是:13

分析上面的程式段:a 的值是15,轉換成二進位制為1111,而b 的值是2,轉換成二進位制為0010,根據異或的運算規律,可以得出其結果為1101 即13。

1111

0010

------

1101    =13

java之運算子

short s 2 s s 2 s 2 哪一行會報錯?為什麼?第二行報錯因為 有乙個自動強制轉換的過程system.out.println true true false system.out.println false false false 運算子 異或 左邊 右邊 結果 true true f...

重溫基礎 instanceof運算子

最近開始在整理es6 es7 es8 es9的知識點 已經上傳到 我的部落格 上 碰到一些知識點是自己已經忘記 用得少的知識點 於是也重新複習了一遍。這篇文章要複習的instanceof是我在整理過程中遇到的,那就整理下來吧,不然容易忘記。要是 寫得不妥,歡迎各位大佬指點。instanceof運算子...

JAVA運算子之 與

和 是雙目運算子,寫成 a b 或 a b 且a b結果一定是boolean型別 即true或false 例如 1 public class operate 2 public class operate 上面兩段 中,1不會報錯,2會報錯。因為對於 11 2 0 為false就不執行 11 0 0 ...