Bitweiser-Operationen-Simulator (AND, OR, XOR, NOT, Shift)
Berechnet AND, OR, XOR, NOT, Links- und Rechtsshift für zwei Zahlen und zeigt in einem Bitraster genau an, welche Bits sich geändert haben. Unterstützt 8/16/32-Bit-Breiten.
Was sind bitweise Operationen?
Bitweise Operationen betrachten Zahlen nicht als Ganzes, sondern als Folge einzelner Bits (0 und 1) und verknüpfen diese Ziffer für Ziffer nach logischen Regeln. AND, OR, XOR, NOT sowie die Shift-Operationen (Links- und Rechtsshift) sind die fünf grundlegenden Vertreter. Alle fünf zählen zu den einfachsten CPU-Befehlen und werden direkt von der Hardware ausgeführt – dadurch sind sie deutlich schneller als klassische arithmetische Operationen wie Multiplikation oder Division. In Programmiersprachen werden sie meist mit den Symbolen `&`, `|`, `^`, `~`, `<<` und `>>` notiert und kommen unter anderem bei der Verwaltung von Flags, bei Berechtigungssystemen, in der Kryptografie und bei der Bildverarbeitung zum Einsatz.
Mit diesem Tool geben Sie Wert A und Wert B ein (bei NOT wird ausschließlich Wert A verwendet) und wählen zusätzlich eine Bitbreite (8, 16 oder 32 Bit). Das Ergebnis wird anschließend Bit für Bit in einem übersichtlichen Raster visualisiert. Die Eingabe ist sowohl in dezimaler Schreibweise als auch mit den Präfixen `0x` (hexadezimal) und `0b` (binär) möglich – also genau in der Notation, wie sie auch im eigenen Quellcode verwendet wird. Werte, die die gewählte Bitbreite überschreiten, lassen sich innerhalb dieser Breite nicht mehr korrekt darstellen. Legen Sie die Bitbreite deshalb vorab bewusst fest, um die angezeigten Ergebnisse richtig einordnen zu können.
So verwenden Sie den Bitweise-Operationen-Simulator
- Bitbreite wählen Legen Sie zunächst fest, ob mit 8, 16 oder 32 Bit gerechnet werden soll. Wer unsicher ist, beginnt am besten mit 8 Bit, da sich Veränderungen im Bitraster hier am leichtesten nachvollziehen lassen.
- Operation auswählen Wählen Sie AND, OR, XOR, NOT, Linksshift oder Rechtsshift aus. Bei NOT wechselt die Eingabemaske automatisch auf ein einzelnes Feld, da hier nur ein Wert benötigt wird.
- Werte eingeben Geben Sie Wert A (und bei allen Operationen außer NOT zusätzlich Wert B) in dezimaler, hexadezimaler (`0x`) oder binärer (`0b`) Schreibweise ein. Bei den Shift-Operationen legen Sie zusätzlich die Anzahl der zu verschiebenden Bits fest.
- Ergebnisraster prüfen Das Ergebnis wird automatisch berechnet und Bit für Bit angezeigt. Gelb markierte Bits zeigen an, an welchen Positionen sich der Wert gegenüber A verändert hat.
- Dezimal- und Hexadezimaldarstellung vergleichen Unterhalb der Ergebniszeile finden Sie den Wert zusätzlich als Dezimal- und Hexadezimalzahl, sodass Sie das Bitmuster direkt mit der in Ihrem Code verwendeten Schreibweise abgleichen können.
Tipps für die Nutzung
- Werte können dezimal eingegeben werden, oder mit dem Präfix `0x1A` (hexadezimal) bzw. `0b1010` (binär). So lassen sich Werte direkt aus dem eigenen Code übernehmen.
- AND, OR und XOR verwenden zwei Werte, NOT dagegen nur einen. Die Anzahl der Eingabefelder passt sich automatisch an die gewählte Operation an.
- Der Rechtsshift (`>>>`) unterstützt hier nur die logische Variante. Im FAQ wird erklärt, worin der Unterschied zu einem arithmetischen Shift besteht, der das Vorzeichenbit erhält.
- Wechselt man die Bitbreite von 8 auf 16 und 32, sieht man, wie dieselbe Zahl weitere führende Nullen erhält – ein guter Weg, um zu verstehen, was „Bitbreite" wirklich bedeutet.
- Gelb markierte Bits sind jene, die sich zwischen A und dem Ergebnis geändert haben. Bei AND/OR lässt sich so visuell nachvollziehen, welcher Eingabewert an welcher Bitposition „gewonnen" hat.
Anwendungsfälle für bitweise Operationen
Programmieren lernen
Beim Erlernen von Sprachen wie C, Java oder Python lassen sich die Operatoren `&`, `|`, `^`, `~`, `<<` und `>>` hier visuell nachvollziehen. Besonders NOT und Shift-Operationen sind im Kopf schwer zu berechnen – das Bitraster macht das Ergebnis sofort verständlich.
Bit-Flags und Berechtigungssysteme entwerfen
Ob klassische Unix-Dateiberechtigungen oder das Bündeln mehrerer Ein/Aus-Zustände in einer einzigen Ganzzahl: Testen Sie hier vorab, wie eine AND-Maskierung einzelne Flags ausliest oder eine OR-Verknüpfung neue Flags setzt.
Wettbewerbsprogrammierung und Bitmasken-Algorithmen
Bitmasken-DP und die Darstellung von Mengen als Ganzzahl gehören zu den Standardtechniken im kompetitiven Programmieren. Prüfen Sie Zwischenschritte anhand kleiner Beispielwerte, bevor Sie die Logik in Code umsetzen.
Hexadezimal- und Binärwerte im Zusammenspiel mit Operationen prüfen
Kombinieren Sie dieses Tool mit einem Zahlensystem-Konverter, um sowohl die reine Umrechnung zwischen Dezimal-, Hexadezimal- und Binärwerten als auch deren Verhalten bei bitweisen Operationen im Blick zu behalten.
Farbcodes und Netzwerkadressen berechnen
Das Extrahieren der Rot-, Grün- und Blauanteile aus einem Hex-Farbcode oder die Verknüpfung einer IP-Adresse mit einer Subnetzmaske per AND lassen sich hier Schritt für Schritt nachvollziehen.
Glossar der Fachbegriffe
- AND
- Liefert an einer Bitposition nur dann eine 1, wenn beide Eingabebits 1 sind. Wird typischerweise zur Maskierung eingesetzt, also um bestimmte Bits aus einem Wert herauszufiltern.
- OR
- Liefert an einer Bitposition bereits dann eine 1, wenn mindestens eines der beiden Eingabebits 1 ist. Wird verwendet, um bestimmte Bits gezielt zu setzen.
- XOR
- Liefert an einer Bitposition nur dann eine 1, wenn sich die beiden Eingabebits unterscheiden. Häufig genutzt, um einzelne Bits umzuschalten, Werte ohne Hilfsvariable zu vertauschen oder Unterschiede zwischen zwei Werten zu erkennen.
- NOT
- Kehrt sämtliche Bits eines einzelnen Werts um (aus 0 wird 1, aus 1 wird 0). Das Ergebnis hängt direkt von der gewählten Bitbreite ab, da sich die Anzahl der invertierten Bits entsprechend ändert.
- Shift-Operation
- Verschiebt das gesamte Bitmuster eines Werts um eine festgelegte Anzahl Positionen nach links oder rechts. Ein Linksshift entspricht einer Multiplikation mit einer Zweierpotenz, ein Rechtsshift einer entsprechenden Division.
- Bitmaske
- Ein Wert, der zusammen mit AND oder OR verwendet wird, um gezielt bestimmte Bits eines anderen Werts auszulesen oder zu verändern. `0b00001111` extrahiert beispielsweise per AND nur die untersten 4 Bits.
- Bitbreite
- Die Anzahl der Bits, mit denen ein Wert dargestellt wird. Bei 8 Bit reicht der darstellbare Bereich von 0 bis 255, bei 16 Bit von 0 bis 65535.
- Binär- und Hexadezimalschreibweise
- Die Binärschreibweise verwendet ausschließlich die Ziffern 0 und 1, die Hexadezimalschreibweise die Ziffern 0–9 sowie die Buchstaben A–F. Hexadezimalzahlen dienen oft als kompakte Kurzschreibweise für Gruppen von Binärstellen.
Häufig gestellte Fragen
Übrigens – Die kuriosen Eigenschaften von XOR
Bitweise Operationen entsprechen direkt den Logikschaltungen eines Computers und gehören damit zu den schnellsten Operationen, die eine CPU ausführen kann – oft in nur einem Taktzyklus. Da sie viel einfachere Schaltungen benötigen als arithmetische Operationen wie Multiplikation oder Division, werden in leistungskritischem Code (Bildverarbeitung, Kryptografie, Implementierung von Netzwerkprotokollen) seit Langem bitweise Tricks als Ersatz für aufwendigere Arithmetik verwendet.
XOR (Exklusiv-Oder) besitzt einige interessante Eigenschaften: Verknüpft man einen Wert per XOR mit sich selbst, ergibt sich immer 0 (`a ^ a = 0`), und XOR mit 0 liefert den ursprünglichen Wert unverändert zurück (`a ^ 0 = a`). Aus diesen beiden Tatsachen entsteht der klassische „XOR-Tausch"-Trick, mit dem sich zwei Variablen ohne Hilfsvariable vertauschen lassen (`a ^= b; b ^= a; a ^= b;`). Aus Gründen der Lesbarkeit wird er in produktivem Code heute kaum noch empfohlen, bleibt aber ein beliebtes Lehrbeispiel, um bitweise Operationen zu verstehen.
Bitmasken kommen in realen Systemen ständig zum Einsatz. Unix-Dateiberechtigungen (Lesen=4, Schreiben=2, Ausführen=1) sind buchstäblich bitweises OR und AND in Aktion, und das Extrahieren der Rot-, Grün- und Blauanteile aus einem Farbcode wie `#FF0000` erfolgt über einen Rechtsshift kombiniert mit einer AND-Maske. Die Technik, mehrere Ein/Aus-Zustände in einer einzigen Ganzzahl zu bündeln – oft „Bit-Flags" genannt – war in älteren Spielen und Systemen weit verbreitet, die mit sehr wenig Speicher viele Zustände verwalten mussten.