1. 位運算&
符
我們之前說過,所有數據都以二進製表示形式存儲在內存中。所以很久以前,程序員想出了很多有趣的方法來處理二進制數。例如,Java 具有對數字二進製表示的位進行運算的邏輯運算符:&
(AND)、, | (OR)
( ~
NOT 或補碼) 和^
(XOR - 異或)。
a & b
此運算符與邏輯 (AND) 運算符非常相似&
,只是它由一個符號表示,而不是兩個:
並將其應用於各個位。每個操作數都被視為一個位數組,i
結果的第 th 位是使用i
兩個操作數中每一個的第 th 位計算的。
結果的第一位將根據數字的第一位a
和數字的第一位計算b
,第二位——根據數字的第二位a
和數字的第二位b
,等等。
( &
AND) 運算符的意思是“只有當數字的相應位等於一時,結果位才a
等於一AND
數字的相應位b
等於一”:
1 & 1 = 1
1 & 0 = 0
0 & 1 = 0
0 & 0 = 0
例子:
例子 | 結果 |
---|---|
|
|
|
|
|
|
|
|
2. 位運算|
符
此運算符與邏輯 (OR) 運算符非常相似|
,只是它由一條垂直線表示,而不是兩條:
a | b
並將其應用於各個位。每個操作數都被視為一個位數組,結果的第 i 位是使用兩個操作數中每一個的第 i 位計算的。
按位|
(OR) 運算符表示“如果數字的相應位等於 1,則結果位a
等於 1,OR
則數字的相應位b
等於 1”:
1 | 1 = 1
1 | 0 = 1
0 | 1 = 1
0 | 0 = 0
例子:
例子 | 結果 |
---|---|
|
|
|
|
|
|
|
|
只有當兩個數的對應位(相同位置的位)都為零時,結果對應的位才為零。
3. 按位^
(異或或“異或”)運算符
運算XOR
符,也發音為exclusive or,由符號表示^
。要在鍵盤上輸入它,請按shift + 6(在英文鍵盤佈局上)。
a ^ b
該運算符與 運算符有些相似OR
,包括名稱相似:XOR
按位^
(XOR) 運算符表示“如果數字的相應位等於 1,則結果位a
等於 1OR
數字的相應位b
等於 1,但不能同時等於 1”:
1 ^ 1 = 0
1 ^ 0 = 1
0 ^ 1 = 1
0 ^ 0 = 0
例子:
例子 | 結果 |
---|---|
|
|
|
|
|
|
|
|
只有當兩個數對應的位(相同位置的位)不同時,結果對應的位才等於1。如果位相同,則結果位等於零。
4.按位~
(非,補)運算符
我想你已經猜到它的作用了。此運算符與邏輯 (NOT) 運算符非常相似!
,但它由波浪號而不是感嘆號表示:
~a
這是一個一元運算符,這意味著它適用於單個數字,而不是兩個。它出現在這個單一操作數之前。
按位運算符表示“如果數字的相應位為零,~
則結果位為一,如果數字的相應位為一,則結果位為零”:a
a
~1 = 0
~0 = 1
例子:
例子 | 結果 |
---|---|
|
|
|
|
|
|
|
|
這個運算符只是簡單地改變了1
到的位0
和到的0
位1
。
GO TO FULL VERSION