Bitweise-Rechner
AND, OR, XOR, NOT und Bitverschiebungen für 32-Bit-Ganzzahlen, mit Bit-für-Bit-Visualisierung
Operanden
Operation
Ergebnis
12 & 1032-Bit-Muster des Ergebnisses
Werte werden als 32-Bit-Ganzzahlen behandelt. Das vorzeichenbehaftete Dezimal deutet das oberste Bit als Vorzeichen (Zweierkomplement); das vorzeichenlose Dezimal liest alle 32 Bit als positiven Betrag. Die Rechtsverschiebung ist logisch (von links werden Nullen aufgefüllt).
Über dieses Werkzeug
Der Bitweise-Rechner berechnet AND, OR, XOR, NOT sowie Links- und Rechtsverschiebungen für zwei Ganzzahlen und richtet sich an Entwickler und Informatikstudierende. Jeder Operand kann in Binär, Dezimal oder Hex eingegeben werden, und das Ergebnis erscheint gleichzeitig in allen drei Basen, dazu eine Live-32-Bit-Karte, die genau zeigt, welche Bits sich ändern. Es eignet sich zum Debuggen von Flags und Bitmasken, zur Arbeit mit Berechtigungen, zum Packen von Daten und um zu lernen, wie Computer Bits auf unterster Ebene verarbeiten.
So geht es
- 1 Gib Operand A ein und wähle seine Basis (Binär, Dezimal oder Hex).
- 2 Wähle eine Operation: AND, OR, XOR, Links-/Rechtsverschiebung oder das unäre NOT.
- 3 Bei Operationen mit zwei Operanden gib Operand B ein; bei einer Verschiebung die Anzahl der Bits.
- 4 Lies das Ergebnis in Dezimal, vorzeichenlos, Hex und Binär und betrachte die hervorgehobenen Bits.
Funktionsweise
Bitweise Operationen arbeiten auf jedem der 32 Bits unabhängig. AND setzt ein Ergebnisbit nur dann auf 1, wenn beide Eingangsbits 1 sind, und dient damit zum Maskieren (Beibehalten) ausgewählter Bits. OR setzt ein Bit auf 1, sobald eines der Eingangsbits 1 ist, und schaltet so Flags ein. XOR setzt ein Bit nur dann auf 1, wenn sich die beiden Eingangsbits unterscheiden, ideal zum Umschalten und für einfache Prüfsummen. NOT ist unär: es kehrt jedes Bit um, macht aus 0 eine 1 und aus 1 eine 0. Eine Linksverschiebung (<<) schiebt alle Bits zum höchstwertigen Ende und füllt mit Nullen auf, was pro Stelle eine Multiplikation mit zwei bewirkt; eine logische Rechtsverschiebung (>>) schiebt in die andere Richtung und füllt ebenfalls mit Nullen. Da negative Zahlen im Zweierkomplement gespeichert werden, lassen sich dieselben 32 Bit als vorzeichenbehafteter Wert (oberstes Bit ist das Vorzeichen) oder als vorzeichenloser Wert lesen, weshalb dieses Werkzeug beides anzeigt. Beispiel: 12 AND 10 = 8, 12 OR 10 = 14, 12 XOR 10 = 6, 1 << 4 = 16, und NOT 0 ergibt lauter Einsen, also -1 mit Vorzeichen oder 4294967295 ohne.
Häufige Fragen
Was ist der Unterschied zwischen AND, OR und XOR?
AND behält ein Bit nur, wenn beide Operanden es gesetzt haben, und dient daher zum Löschen oder Prüfen von Bits mit einer Maske. OR setzt ein Bit, wenn einer der Operanden es gesetzt hat, und schaltet Bits ein. XOR setzt ein Bit nur, wenn genau ein Operand es gesetzt hat, schaltet Bits um und erkennt Unterschiede.
Warum zeigt NOT 0 sowohl -1 als auch 4294967295?
NOT kehrt alle 32 Bit um, sodass aus 0 zweiunddreißig Einsen werden. Als vorzeichenbehaftete Zweierkomplement-Zahl gelesen ist dieses Muster -1; als vorzeichenlose 32-Bit-Zahl gelesen ist es 4294967295. Beides beschreibt dieselben Bits.
Was bewirkt das Verschieben nach links oder rechts?
Eine Linksverschiebung um n schiebt jedes Bit n Stellen zum höchstwertigen Ende und füllt mit Nullen, was eine Multiplikation mit 2 hoch n ist. Eine logische Rechtsverschiebung um n schiebt in die andere Richtung und füllt mit Nullen, was bei nicht negativen Werten einer Division durch 2 hoch n entspricht.
Warum ist alles auf 32 Bit begrenzt?
Die bitweisen Operatoren von JavaScript und die meisten Ganzzahlregister von Prozessoren arbeiten mit 32-Bit-Wörtern, und dieses Werkzeug bildet das ab. Verschiebungsbeträge werden modulo 32 genommen, und Werte laufen im 32-Bit-Bereich um, genau wie in C, Java oder JavaScript.
Verwandte Werkzeuge und Anwendungen
Um einen einzelnen Wert zwischen Binär, Oktal, Dezimal und Hex umzurechnen, nutze den Zahlensystem-Umrechner. Für Zeichencodes siehe den ASCII-Umrechner, und für Farbmasken den Farbcode-Umrechner.