Bitweiser Rechner
UND · ODER · XOR · NICHT · Linksverschiebung · Rechtsverschiebung · Dezimal-, Binär- & Hex-Eingabe · Visuelle Bit-Diagramme
Eingabeformat
Bitbreite
Operation
Schnellbeispiele
Visuelles Bit-Diagramm
Schritt für Schritt
Gib oben einen Wert ein, um bitweise Ergebnisse zu berechnen
Gib zwei ganze Zahlen ein, um alle bitweisen Operationen auf einmal zu sehen. Negative Zahlen werden im 32-Bit-Zweierkomplement dargestellt.
| Operation | Ausdruck | Dezimal | Binär | Hex |
|---|
Gib die Werte A und B ein, um alle Operationen zu sehen
Was ist eine bitweise Operation?
Bitweise Operationen arbeiten direkt auf der binären Darstellung von Ganzzahlen, und zwar auf Bit-Ebene. Statt eine Zahl als einzelnen Wert zu behandeln, verarbeitet die CPU jedes Bit unabhängig mit einfachen Logikgattern. Die sechs grundlegenden bitweisen Operationen sind UND, ODER, XOR, NICHT, Linksverschiebung und Rechtsverschiebung. Sie sind in praktisch jeder Programmiersprache verfügbar und bilden das Rückgrat der maschinennahen Systemprogrammierung, der Kryptografie, der Grafikprogrammierung und von Netzwerkprotokollen.
Jede Ganzzahl wird im Speicher als Folge von Bits (Binärziffern: 0 oder 1) abgelegt. Eine 8-Bit-Ganzzahl kann 256 verschiedene Werte (0–255) speichern, eine 16-Bit-Ganzzahl 65.536 Werte, und eine 32-Bit-Ganzzahl über 4 Milliarden Werte. Mit bitweisen Operationen lassen sich einzelne Bits innerhalb dieser Werte mit einer einzigen CPU-Instruktion lesen, setzen, löschen oder umschalten — deutlich schneller als mit arithmetischen Alternativen.
Referenztabelle der bitweisen Operationen
| Operation | Symbol | Beschreibung | Beispiel (4-Bit) |
|---|---|---|---|
| UND | & | Beide Bits müssen 1 sein | 1100 & 1010 = 1000 |
| ODER | | | Mindestens ein Bit ist 1 | 1100 | 1010 = 1110 |
| XOR | ^ | Bits müssen unterschiedlich sein | 1100 ^ 1010 = 0110 |
| NICHT | ~ | Alle Bits invertieren | ~1100 = 0011 |
| Linksverschiebung | << | Bits nach links verschieben (×2 pro Position) | 0011 << 1 = 0110 |
| Rechtsverschiebung | >> | Bits nach rechts verschieben (÷2 pro Position) | 1100 >> 1 = 0110 |
Wahrheitstabelle
Für jedes Paar einzelner Bits zeigt die folgende Wahrheitstabelle jedes mögliche Ergebnis. XOR (exklusives ODER) ist das entscheidende Unterscheidungsmerkmal zum einfachen ODER — es ergibt 0, wenn beide Bits 1 sind.
| A | B | UND | ODER | XOR |
|---|---|---|---|---|
| 0 | 0 | 0 | 0 | 0 |
| 0 | 1 | 0 | 1 | 1 |
| 1 | 0 | 0 | 1 | 1 |
| 1 | 1 | 1 | 1 | 0 |
Praxisanwendungen
- Berechtigungs-Flags: Unix-Dateiberechtigungen kodieren Lesen (4), Schreiben (2) und Ausführen (1) als Bits. Ein Berechtigungswert von 6 =
110in Binärschreibweise bedeutet Lesen + Schreiben, aber kein Ausführen.chmod 755= Eigentümer 7 (rwx), Gruppe 5 (r-x), andere 5 (r-x). - Bits maskieren: Um das untere Nibble eines Bytes zu extrahieren, wird mit
0x0FUND-verknüpft:0xAB & 0x0F = 0x0B. Um das obere Nibble zu extrahieren, wird mit0xF0UND-verknüpft und anschließend um 4 nach rechts verschoben. - Bit umschalten: Der Wert wird mit einer Maske XOR-verknüpft, die an der Zielposition eine 1 hat:
x ^ (1 << n)kippt Bit n, ohne die anderen Bits zu beeinflussen. - Prüfen, ob ungerade:
n & 1ergibt 1, wenn n ungerade ist, und 0, wenn es gerade ist. Deutlich schneller als der Modulo-Operator. - Multiplizieren / Dividieren durch eine Zweierpotenz:
n << kmultipliziert mit 2k;n >> kdividiert durch 2k (Ganzzahldivision). Compiler wenden diese Optimierung automatisch an. - Farbkanal-Extraktion: Eine 32-Bit-RGBA-Farbe packt vier 8-Bit-Kanäle. Rot =
(color >> 16) & 0xFF, Grün =(color >> 8) & 0xFF, Blau =color & 0xFF. - Kryptografie: XOR ist die Grundlage von Stromchiffren und One-Time-Pads. Da XOR sein eigenes Inverses ist, verwenden Ver- und Entschlüsselung dieselbe Operation:
(A XOR key) XOR key = A.
Durchgerechnete Beispiele
Beispiel 1: 60 UND 13
In Binärschreibweise (8-Bit): 0011 1100 UND 0000 1101
| Bitposition | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
|---|---|---|---|---|---|---|---|---|
| 60 (A) | 0 | 0 | 1 | 1 | 1 | 1 | 0 | 0 |
| 13 (B) | 0 | 0 | 0 | 0 | 1 | 1 | 0 | 1 |
| Ergebnis | 0 | 0 | 0 | 0 | 1 | 1 | 0 | 0 |
Ergebnis: 0000 1100 = 12 (dezimal) = 0x0C (hex). Nur die Bits, bei denen sowohl A als auch B eine 1 hatten, blieben erhalten.
Beispiel 2: 5 ODER 3
In Binärschreibweise (8-Bit): 0000 0101 ODER 0000 0011
| Bitposition | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
|---|---|---|---|---|---|---|---|---|
| 5 (A) | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 1 |
| 3 (B) | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 |
| Ergebnis | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 1 |
Ergebnis: 0000 0111 = 7 (dezimal) = 0x07 (hex). Jedes Bit, das in A oder B eine 1 war, erscheint im Ergebnis.
Beispiel 3: 4 Linksverschiebung um 2
4 << 2: Nimm die Binärzahl 4 (0000 0100) und verschiebe jedes Bit um zwei Positionen nach links, wobei rechts mit Nullen aufgefüllt wird:
| Schritt | Binär | Dezimal |
|---|---|---|
| Anfangswert (4) | 0000 0100 | 4 |
| Nach 1 Verschiebung | 0000 1000 | 8 |
| Nach 2 Verschiebungen | 0001 0000 | 16 |
Ergebnis: 16. Jede Linksverschiebung verdoppelt den Wert, daher entsprechen 2 Verschiebungen einer Multiplikation mit 4. Das entspricht 4 × 2² = 16.
Häufig gestellte Fragen
Was ist eine bitweise UND-Operation?
1100 & 1010 = 1000 (dezimal 8). UND wird häufig zum Maskieren verwendet — um bestimmte Bits innerhalb eines Werts zu isolieren.
Was ist der Unterschied zwischen ODER und XOR?
|) ergibt eine 1, wenn mindestens eines der beiden Bits 1 ist. XOR (^) ergibt nur dann eine 1, wenn sich die beiden Bits unterscheiden. Also ist 1 XOR 1 = 0, während 1 ODER 1 = 1 ist. XOR wird häufig verwendet, um Bits umzuschalten oder Unterschiede zwischen Werten zu erkennen, und ist die Grundlage vieler Verschlüsselungsalgorithmen.
Was macht der NICHT-Operator?
~) invertiert jedes Bit — aus jeder 0 wird eine 1 und aus jeder 1 wird eine 0. In JavaScript und den meisten Sprachen arbeitet NICHT mit vorzeichenbehafteten 32-Bit-Ganzzahlen im Zweierkomplement, sodass ~5 = -6 ist (Formel: ~n = -(n+1)). Dieser Rechner zeigt das vorzeichenlose 32-Bit-Ergebnis zusammen mit dem vorzeichenbehafteten Wert an, damit du das rohe Bitmuster klar erkennen kannst.
Wie multipliziert die Linksverschiebung mit 2?
<<) verschiebt alle Bits um eine Position nach links und fügt rechts eine 0 ein. Da Binärzahlen stellenwertig sind (jede Position ist das Doppelte der vorherigen wert), verdoppelt eine Verschiebung aller Bits um eins den Wert. Eine Verschiebung um k Positionen multipliziert mit 2k. Zum Beispiel ergibt 3 << 2 = 12 (3 × 4). Das ist in maschinennahem Code schneller als eine Multiplikation und eine gängige Compiler-Optimierung.
Was ist eine Bitmaske?
0x0F (0000 1111) UND-verknüpft. Um Bit 3 zu setzen, wird mit 0x08 (0000 1000) ODER-verknüpft. Um Bit 3 umzuschalten, wird mit 0x08 XOR-verknüpft. Bitmasken sind grundlegend für Flags, Dateiberechtigungen, Hardwareregister, Netzwerkprotokoll-Header und die Farbmanipulation in der Grafikprogrammierung.
Wie werden bitweise Operationen in der Programmierung eingesetzt?
Was ist der Unterschied zwischen logischen und bitweisen Operatoren?
&&, ||, !) arbeiten mit booleschen Werten und liefern einen booleschen Wert zurück. Sie werten zudem kurzschlussartig aus: Bei A && B wird B nicht ausgewertet, wenn A falsch ist. Bitweise Operatoren (&, |, ~, ^) arbeiten mit den einzelnen Bits von Ganzzahlen und werten immer beide Operanden aus. Sie zu verwechseln ist ein häufiger Fehler — zum Beispiel ist 5 & 3 = 1 (bitweises UND), während 5 && 3 = true (logisches UND) ist. In JavaScript kann die Verwendung von | statt || in Bedingungen sehr subtile Fehler verursachen.
Verwandte Rechner
Binär-/Dezimal-/Hex-Umrechner
Zahlensysteme umrechnen — mit Schritt-für-Schritt-Rechenweg
Wissenschaftlicher Rechner
Vollständige wissenschaftliche Funktionen mit Speicher und Verlauf
Boolesche Algebra Vereinfacher
Boolesche Ausdrücke und Wahrheitstabellen vereinfachen
Grundrechenarten-Rechner
Addieren, subtrahieren, multiplizieren, dividieren — mit vollständigem Rechenweg