Innerhalb eines Computers sind alle Variablen als eine Kette von Bits hinterlegt. Ein Bit ist ein Schaltzustand, der entweder ein oder aus sein kann. Dieses wird mit einer 1
oder einer 0
symbolisiert. Nun ist es möglich, Zahlen in diese Binärsystem umzurechnen. Beispielsweise würde eine dezimale 7
binär als 111
dargestellt werden. Eine dezimale 10
als 1010
.
Die bitweisen Operatoren, die auf diesen Zahlen arbeiten, sind die folgenden:
- Und (
&
):1010&111
ergibt10
. - Oder (
|
):1010|111
ergibt1111
. - Entweder-Oder (XOR) (
^
):1010 ^ 111
ergibt1101
. - Negierung (
~
):~1010
ergibt theoretisch101
. Da jedoch PHP keine dreibittigen Zahlen verwaltet, ist die Zahl in einer 32-bittigen Darstellung gespeichert und es wird11111111111111111111111111110101
ausgegeben. Die zuviel ausgegeben Stellen werden jedoch in vielen Anwendungen automatisch ignoriert. - Shift nach links und nach rechts (
<<
und>>
): Vor dem doppelten Kleiner-Größer-Zeichen steht die zu schiftende Zahl. Nach dem Zeichen steht, um wie viele Stellen diese verschoben werden soll. Somit ergibt111<<2
dann11100
und1010>>1
ergibt101
.
Im Beispiel oben sind die Zahlen immer binär angegeben. Zu beachten ist, dass diese in PHP in Dezimalschreibweise übergeben werden. Dies ist für den Programmierer verwirrend, da er zwischen den beiden Zahlensystemen umrechnen muss. Bitweise Operatoren werden deshalb heutzutage nur noch selten verwendet.