1. Bitvis &
operator
Vi har tidigare sagt att all data lagras i minnet i en binär representation. Så för ganska länge sedan kom programmerare på många intressanta sätt att arbeta med binära tal. Java har till exempel logiska operatorer som fungerar på bitarna i ett tals binära representation: &
(AND), | (OR)
, ~
(NOT eller komplement) och ^
(XOR - exklusiv eller).
a & b
&
(AND) operator
Den här operatorn är mycket lik den logiska &
(AND) operatorn, bara den betecknas med ett enda et-tecken, inte två:
Och det appliceras på enskilda bitar. Varje operand behandlas som en array av bitar, och den i
e biten i resultatet beräknas med hjälp av den i
e biten i var och en av de två operanderna.
Den första biten av resultatet kommer att beräknas baserat på den första biten av numret a
och den första biten av numret, b
den andra biten - baserat på den andra biten av talet a
och den andra biten av numret b
, etc.
(OCH) -operatorn &
betyder "den resulterande biten är lika med en endast om motsvarande bit av numret a
är lika med en AND
motsvarande bit av numret b
är lika med ett":
1 & 1 = 1
1 & 0 = 0
0 & 1 = 0
0 & 0 = 0
Exempel:
Exempel | Resultat |
---|---|
|
|
|
|
|
|
|
|
2. Bitvis |
operator
Denna operator är mycket lik den logiska |
(OR) operatorn, bara den betecknas med en enda vertikal linje, inte två:
a | b
Och det appliceras på enskilda bitar. Varje operand behandlas som en array av bitar, och den i:te biten av resultatet beräknas med hjälp av den i:te biten för var och en av de två operanderna.
Den bitvisa |
(OR) operatorn betyder "den resulterande biten är lika med en om motsvarande bit av numret a
är lika med en OR
motsvarande bit av numret b
är lika med ett":
1 | 1 = 1
1 | 0 = 1
0 | 1 = 1
0 | 0 = 0
Exempel:
Exempel | Resultat |
---|---|
|
|
|
|
|
|
|
|
Endast när de motsvarande bitarna (bitarna på samma position) av båda talen är noll är resultatets motsvarande bit lika med noll.
3. Bitvis ^
(XOR eller "exklusiv eller") operator
Operatören XOR
, även uttalad exklusiv eller , betecknas med ^
symbolen. För att ange det på tangentbordet, tryck på shift + 6 (på en engelsk tangentbordslayout).
a ^ b
Den här operatören är lite lik operatören OR
, inklusive genom att den har ett liknande namn:XOR
Den bitvisa ^
(XOR) operatorn betyder "den resulterande biten är lika med en om motsvarande bit av numret a
är lika med en OR
motsvarande bit av numret b
är lika med en men inte båda samtidigt":
1 ^ 1 = 0
1 ^ 0 = 1
0 ^ 1 = 1
0 ^ 0 = 0
Exempel:
Exempel | Resultat |
---|---|
|
|
|
|
|
|
|
|
Endast när motsvarande bitar (bitarna på samma position) för båda talen är olika är resultatets motsvarande bit lika med en . Om bitarna är samma är den resulterande biten lika med noll .
4. Bitvis ~
(INTE, KOMPLEMENT) operator
Jag tror att du redan kan gissa vad den gör. Denna operator är mycket lik den logiska !
(NOT) operatorn, men den betecknas med en tilde , inte ett utropstecken:
~a
Detta är en unär operator, vilket betyder att den gäller ett enda nummer, inte två. Det visas före denna enda operand.
Den bitvisa ~
operatorn betyder "den resulterande biten är ett om motsvarande bit av numret a
är noll, och det är noll om motsvarande bit av numret a
är ett":
~1 = 0
~0 = 1
Exempel:
Exempel | Resultat |
---|---|
|
|
|
|
|
|
|
|
Den här operatorn ändrar helt enkelt bitarna som ska 1
till 0
och bitar som 0
ska 1
.
GO TO FULL VERSION