1. Bitweiser &
Operator
Wir haben zuvor gesagt, dass alle Daten in einer binären Darstellung im Speicher gespeichert werden. Vor langer Zeit haben sich Programmierer viele interessante Möglichkeiten ausgedacht, mit Binärzahlen zu arbeiten. Java verfügt beispielsweise über logische Operatoren, die mit den Bits der binären Darstellung einer Zahl arbeiten: &
(AND), | (OR)
, ~
(NOT oder Komplement) und ^
(XOR – exklusives Oder).
a & b
&
(AND) Operator
Dieser Operator ist dem logischen &
Operator (AND) sehr ähnlich, wird jedoch durch ein einzelnes kaufmännisches Und-Zeichen und nicht durch zwei gekennzeichnet:
Und es wird auf einzelne Bits angewendet. Jeder Operand wird als Array von Bits behandelt und das i
te Bit des Ergebnisses wird unter Verwendung des i
ten Bits jedes der beiden Operanden berechnet.
Das erste Bit des Ergebnisses wird basierend auf dem ersten Bit der Zahl a
und dem ersten Bit der Zahl berechnet b
, das zweite Bit – basierend auf dem zweiten Bit der Zahl a
und dem zweiten Bit der Zahl b
usw.
Der &
(AND)-Operator bedeutet „das resultierende Bit ist nur dann gleich eins, wenn das entsprechende Bit der Zahl a
gleich eins ist AND
und das entsprechende Bit der Zahl b
gleich eins ist“:
1 & 1 = 1
1 & 0 = 0
0 & 1 = 0
0 & 0 = 0
Beispiele:
Beispiel | Ergebnis |
---|---|
|
|
|
|
|
|
|
|
2. Bitweiser |
Operator
Dieser Operator ist dem logischen |
Operator (ODER) sehr ähnlich, nur wird er durch eine einzelne vertikale Linie und nicht durch zwei gekennzeichnet:
a | b
Und es wird auf einzelne Bits angewendet. Jeder Operand wird als Array von Bits behandelt und das i-te Bit des Ergebnisses wird anhand des i-ten Bits jedes der beiden Operanden berechnet.
Der bitweise |
Operator (OR) bedeutet „das resultierende Bit ist gleich eins, wenn das entsprechende Bit der Zahl a
gleich eins ist, ist OR
das entsprechende Bit der Zahl b
gleich eins“:
1 | 1 = 1
1 | 0 = 1
0 | 1 = 1
0 | 0 = 0
Beispiele:
Beispiel | Ergebnis |
---|---|
|
|
|
|
|
|
|
|
Nur wenn die entsprechenden Bits (die Bits an der gleichen Position) beider Zahlen Null sind, ist das entsprechende Bit des Ergebnisses gleich Null.
3. Bitweiser ^
Operator (XOR oder „exklusives Oder“)
Der XOR
Operator, auch exklusiv oder^
ausgesprochen, wird durch das Symbol gekennzeichnet . Um es über die Tastatur einzugeben, drücken Sie Umschalt + 6 (auf einem englischen Tastaturlayout).
a ^ b
Dieser Operator ähnelt in gewisser Weise dem OR
Operator, auch weil er einen ähnlichen Namen hat:XOR
Der bitweise ^
(XOR) Operator bedeutet „das resultierende Bit ist gleich eins, wenn das entsprechende Bit der Zahl a
gleich eins ist, OR
das entsprechende Bit der Zahl b
gleich eins ist, aber nicht beide gleichzeitig“:
1 ^ 1 = 0
1 ^ 0 = 1
0 ^ 1 = 1
0 ^ 0 = 0
Beispiele:
Beispiel | Ergebnis |
---|---|
|
|
|
|
|
|
|
|
Nur wenn die entsprechenden Bits (die Bits an der gleichen Position) beider Zahlen unterschiedlich sind , ist das entsprechende Bit des Ergebnisses gleich eins . Wenn die Bits gleich sind , ist das resultierende Bit gleich Null .
4. Bitweiser ~
Operator (NOT, COMPLEMENT).
Ich denke, man kann schon erraten, was es bewirkt. Dieser Operator ist dem logischen !
Operator (NOT) sehr ähnlich, wird jedoch durch eine Tilde und nicht durch ein Ausrufezeichen gekennzeichnet:
~a
Dies ist ein unärer Operator, das heißt, er gilt für eine einzelne Zahl, nicht für zwei. Es erscheint vor diesem einzelnen Operanden.
Der bitweise ~
Operator bedeutet „das resultierende Bit ist eins, wenn das entsprechende Bit der Zahl a
Null ist, und es ist Null, wenn das entsprechende Bit der Zahl a
eins ist“:
~1 = 0
~0 = 1
Beispiele:
Beispiel | Ergebnis |
---|---|
|
|
|
|
|
|
|
|
Dieser Operator ändert einfach das Bit und die Bits, die 1
verwendet werden sollen .0
0
1
GO TO FULL VERSION