1. &
Operator bitowy
Wcześniej powiedzieliśmy, że wszystkie dane są przechowywane w pamięci w postaci binarnej. Tak więc dość dawno temu programiści wymyślili wiele interesujących sposobów pracy z liczbami binarnymi. Na przykład Java ma operatory logiczne, które działają na bitach binarnej reprezentacji liczby: &
(AND), | (OR)
( ~
NOT lub uzupełnienie) i ^
(XOR - wyłączne lub).
a & b
Ten operator jest bardzo podobny do operatora logicznego &
(AND), tyle że jest oznaczony pojedynczym znakiem ampersand, a nie dwoma:
I jest to stosowane do poszczególnych bitów. Każdy operand jest traktowany jako tablica bitów, a i
th bit wyniku jest obliczany przy użyciu i
th bitu każdego z dwóch operandów.
Pierwszy bit wyniku zostanie obliczony na podstawie pierwszego bitu liczby a
i pierwszego bitu liczby b
, drugi bit — na podstawie drugiego bitu liczby a
i drugiego bitu liczby b
itd.
Operator &
(AND) oznacza „wynikowy bit jest równy jeden tylko wtedy, gdy odpowiedni bit liczby a
jest równy jeden, AND
odpowiedni bit liczby b
jest równy jeden”:
1 & 1 = 1
1 & 0 = 0
0 & 1 = 0
0 & 0 = 0
Przykłady:
Przykład | Wynik |
---|---|
|
|
|
|
|
|
|
|
2. |
Operator bitowy
Ten operator jest bardzo podobny do operatora logicznego |
(OR), tyle że jest oznaczony pojedynczą linią pionową, a nie dwoma:
a | b
I jest to stosowane do poszczególnych bitów. Każdy operand jest traktowany jako tablica bitów, a i-ty bit wyniku jest obliczany na podstawie i-tego bitu każdego z dwóch operandów.
Operator bitowy |
(OR) oznacza „wynikowy bit jest równy jeden, jeśli odpowiedni bit liczby a
jest równy jeden, OR
odpowiedni bit liczby b
jest równy jeden”:
1 | 1 = 1
1 | 0 = 1
0 | 1 = 1
0 | 0 = 0
Przykłady:
Przykład | Wynik |
---|---|
|
|
|
|
|
|
|
|
Tylko wtedy, gdy odpowiednie bity (bity na tej samej pozycji) obu liczb są równe zeru, odpowiedni bit wyniku jest równy zeru.
3. Operator bitowy ^
(XOR lub „wyłączny lub”)
Operator XOR
, wymawiany również jako wyłączny lub , jest oznaczony symbolem ^
. Aby wprowadzić go na klawiaturze, naciśnij shift + 6 (w układzie klawiatury angielskiej).
a ^ b
Ten operator jest nieco podobny do OR
operatora, w tym ma podobną nazwę:XOR
Operator bitowy ^
(XOR) oznacza, że „wynikowy bit jest równy jeden, jeśli odpowiedni bit liczby a
jest równy jeden, OR
odpowiedni bit liczby b
jest równy jeden, ale nie oba jednocześnie”:
1 ^ 1 = 0
1 ^ 0 = 1
0 ^ 1 = 1
0 ^ 0 = 0
Przykłady:
Przykład | Wynik |
---|---|
|
|
|
|
|
|
|
|
Tylko wtedy, gdy odpowiednie bity (bity na tej samej pozycji) obu liczb są różne , odpowiedni bit wyniku jest równy jeden . Jeśli bity są takie same , wynikowy bit jest równy zeru .
4. Operator bitowy ~
(NOT, COMPLEMENT).
Myślę, że już się domyślasz, co to robi. Ten operator jest bardzo podobny do operatora logicznego !
(NOT), ale jest oznaczony tyldą , a nie wykrzyknikiem:
~a
Jest to operator jednoargumentowy , co oznacza, że dotyczy jednej liczby, a nie dwóch. Pojawia się przed tym pojedynczym operandem.
Operator bitowy ~
oznacza „wynikowy bit to jeden, jeśli odpowiedni bit liczby a
wynosi zero, i jest równy zero, jeśli odpowiedni bit liczby a
to jeden”:
~1 = 0
~0 = 1
Przykłady:
Przykład | Wynik |
---|---|
|
|
|
|
|
|
|
|
Ten operator po prostu zmienia bit, który jest 1
na 0
i bity, które są 0
na 1
.
GO TO FULL VERSION