|
Bit Operatoren
Ein Bit
Operator
ist ein Teil einer
Query,
also einer Datenbankabfrage. Mit Hilfe von Bit Operatoren kann direkt auf die binäre Darstellung von
Zahlen zurückgegriffen werden.
Bit Operatoren und Beispiele
-
& (ampersand) - AND
gibt 1 zurück (0101 & 0011 = 0001)
-
| (vertical bar, pipe) - OR
gibt 7 zurück (0101 | 0010 = 0111)
-
(circumflex) - EXOR
gibt 6 zurück (0101 0011 = 0110)
-
~ (tilde) - NOT
gibt -2 zurück (~0001 = 1110)
Beispiele und Regeln der bitweisen Verknüpfungen
AND - & (ampersand)
Mit dem bitweisen & Operator lässt sich beispielsweise testen, ob eine Zahl gerade oder ungerade ist.
Es muss nur Bit 0 (bzw. das erste Bit) überprüft werden, ob es gesetzt, also "1" (ungerdae) oder nicht
gesetzt, also "0" (gerade) ist.
Das Beispiel oben gibt 7 zurück.
| Regeln der bitweisen UND-Verknüpfung (&)
|
| BitA |
BitB |
BitA & BitB |
| 0 |
0 |
0 |
| 0 |
1 |
0 |
| 1 |
0 |
0 |
| 1 |
1 |
1 |
OR - | (vertical bar, pipe)
Mit dem bitweisen ODER-Operator können gezielt zusätzliche Bits gesetzt werden.
select 1|126
go
-----
127
Das Beispiel oben gibt 127 zurück.
| Regeln der bitweisen ODER-Verknüpfung (|)
|
| BitA |
BitB |
BitA | BitB |
| 0 |
0 |
0 |
| 0 |
1 |
1 |
| 1 |
0 |
1 |
| 1 |
1 |
1 |
EXOR - (circumflex)
Der exklusive ODER-Operator EXOR liefert nur dann eine 1 zurück, wenn beide Bits unterschiedlich sind.
Er ist geeignet, um Bits umzuschalten. Alle gesetzten Bits werden gelöscht und alle gelöschten gesetzt.
Das Beispiel oben gibt 35 zurück.
| Regeln der bitweisen EXOR-Verknüpfung ()
|
| BitA |
BitB |
BitA BitB |
| 0 |
0 |
0 |
| 0 |
1 |
1 |
| 1 |
0 |
1 |
| 1 |
1 |
0 |
NOT - ~ (tilde)
Der NOT-Operator (~) invertiert jedes einzelne Bit einer Zahlen. Bei vorzeichenbehafteten Datentypen entspricht das
einer Negation mit anschließender Subtraktion von 1.
Das Beispiel oben gibt -21 zurück.
| Regeln der bitweisen NOT-Verknüpfung (~)
|
| BitA |
~BitA |
| 0 |
1 |
| 1 |
0 |
Siehe auch:
string operators,
logical operators,
pattern match operators,
numeric operators
und
Umrechungstabelle Dezimal, Hexadezmial, Oktal und Binär.
Siehe auch:
pattern matching operators.
|