Bitweise Operatoren





Eingabe
Ergebnis

Hier kann man Terme, die mit den bitweisen Operatoren zur Bit-Manipulation (von C++, Java und JavaScript) gebildet werden, auswerten.
Die verwendeten Zahlen werden auf Basis von 2 Byte bzw. 16 Bit gespeichert und dargestellt.
Das Ergebnis wird stets dezimal, hexadezimal (0x...) und binär (0b...) ausgegeben.
Eine hexadezimale Ziffer representiert jeweils eine Gruppe von 4 Binärziffern (Nibble).
In der Ausgabe werden diese Gruppen von 4 benachbarten Binärziffern abwechselnd rot bzw. schwarz dargestellt.

Zulässige Operatoren sind (Operator-Priorität in dieser Reihenfolge abnehmend):

˜ bitweise negieren
<<, >> shiften nach links bzw. rechts
& bitweise und
^bitweise exklusives oder
|bitweise oder

Folgende Zahlenliterale sind in der Eingabe möglich:
Zahlen im Dezimalformat wie 474,
Zahlen im Binärformat wie 0b111011010,
Zahlen im Hexadezimalformat wie 0x1da.

Bei der hexadezimalen Darstellung gibt es 16 verschiedene Ziffern bzw. Nibbles,
deren Bitbelegung im Folgenden dargestellt ist:

dezhexbinär
00x0 0000
10x1 0001
20x2 0010
30x3 0011
40x4 0100
50x5 0101
60x6 0110
70x7 0111
80x8 1000
90x9 1001
100xa 1010
110xb 1011
120xc 1100
130xd 1101
140xe 1110
150xf 1111

Anwendungsbeispiele

Bits werden häufig genutzt um kompakt einfache Informationen zu speichern.
Mit Bitoperationen kann man gezielt bestimmte Bits in einer ganzzahligen Speichervariablen setzen und auch löschen.
Einzelne Bits werden dabei über ihre Position in der Speichervariablen angesprochen.
Ganz rechts ist das Bit mit der Position 0.
Die Position wird dann von rechts nach links hochgezählt.

Setzen von Bits
135 | 1<<4
In einem Speicherbereich, der zunächst mit 135 belegt ist, soll das Bit 4 gesetzt werden.
Dazu wird zunächst die 1 (Bit an der Position 0) um 4 Positionen nach links verschoben und dann
durch die Oder-Verknüpfung mit der "Speichergröße" 135 erzwungen, dass im Ergebnis das Bit 4 gesetzt ist.
Ergibt dann 151.

Löschen von Bits
135 & ~(1<<2)
In einem Speicherbereich, der zunächst mit 135 belegt ist, soll das Bit 2 gelöscht werden.
Hier wird als erstes die 1 an die Bitposition 2 geschoben, dann das Bitkomplement gebildet.
Das ergibt dann eine Bitbelegung, die überall 1 ist, bis auf Position 2.
Durch die Und-Verknüpfung mit der "Speichergröße" 135 wird erzwungen, dass im Ergebnis das Bit 2 gelöscht ist.
Ergibt dann 131.

Verwenden von Variablen
a=135
b=2005
c = a | b
Es werden hier die beiden Variablen a und b mit konkreten Zahlen belegt.
Dann wird eine weitere Variable c angelegt, die mit der oder-Verknüpfung von a und b belegt wird.
Dadurch, dass die Variablen untereinander ausgegeben werden, kann man gut die einzelnen Bitpositionen vergleichen.

Die einfachste Anwendung dieses Rechners ist natürlich die Umwandlung einer Zahl von einer Darstellung in eine andere.
Dazu wird einfach die jeweilige Zahl in einer beliebigen Zahlendarstellung eingegeben.
Ausgegeben werden dann stets alle 3 hier verwendeten Zahlendarstellungen.

Umwandlung von dezimal nach binär

Die Umwandlung ist ganz einfach von Hand möglich, indem man die Dezimalzahl wiederholt durch 2 teilt
und dabei jeweils den Divisionsrest notiert.
Das Verfahren endet, wenn man als Divisionsergebnis 0 erhält.
Die Divisionsreste bilden dann, von hinten nach vorn gelesen, die gesuchte Binärdarstellung.

Beispiel: 371
371:2 = 185 Rest 1
185:2 = 92 Rest 1
92:2 = 46 Rest 0
46:2 = 23 Rest 0
23:2 = 11 Rest 1
11:2 = 5 Rest 1
5:2 = 2 Rest 1
2:2 = 1 Rest 0
1:2 = 0 Rest 1
Somit ergibt sich die Binärzahl 101110011


weitere JavaScript-Programme