Bitweiser Rechner

UND · ODER · XOR · NICHT · Linksverschiebung · Rechtsverschiebung · Dezimal-, Binär- & Hex-Eingabe · Visuelle Bit-Diagramme

Eingabeformat

Bitbreite

Operation

Schnellbeispiele

Gib oben einen Wert ein, um bitweise Ergebnisse zu berechnen

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

OperationSymbolBeschreibungBeispiel (4-Bit)
UND&Beide Bits müssen 1 sein1100 & 1010 = 1000
ODER|Mindestens ein Bit ist 11100 | 1010 = 1110
XOR^Bits müssen unterschiedlich sein1100 ^ 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.

ABUNDODERXOR
00000
01011
10011
11110

Praxisanwendungen

  • Berechtigungs-Flags: Unix-Dateiberechtigungen kodieren Lesen (4), Schreiben (2) und Ausführen (1) als Bits. Ein Berechtigungswert von 6 = 110 in 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 0x0F UND-verknüpft: 0xAB & 0x0F = 0x0B. Um das obere Nibble zu extrahieren, wird mit 0xF0 UND-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 & 1 ergibt 1, wenn n ungerade ist, und 0, wenn es gerade ist. Deutlich schneller als der Modulo-Operator.
  • Multiplizieren / Dividieren durch eine Zweierpotenz: n << k multipliziert mit 2k; n >> k dividiert 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

Bitposition76543210
60 (A)00111100
13 (B)00001101
Ergebnis00001100

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

Bitposition76543210
5 (A)00000101
3 (B)00000011
Ergebnis00000111

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:

SchrittBinärDezimal
Anfangswert (4)0000 01004
Nach 1 Verschiebung0000 10008
Nach 2 Verschiebungen0001 000016

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?
Eine bitweise UND-Operation vergleicht jedes entsprechende Bit zweier Zahlen. Das Ergebnisbit ist nur dann 1, wenn beide Eingabebits 1 sind; andernfalls ist es 0. Zum Beispiel ergibt 12 UND 10 in Binärschreibweise 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?
ODER (|) 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?
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?
Die Linksverschiebung (<<) 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?
Eine Bitmaske ist ein Wert, der zusammen mit UND, ODER oder XOR verwendet wird, um bestimmte Bits gezielt zu lesen, zu setzen oder zu löschen. Um das untere Nibble eines Bytes zu extrahieren, wird mit 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?
Bitweise Operationen kommen in vielen Bereichen der Programmierung vor. Unix-Dateiberechtigungen kodieren Lesen/Schreiben/Ausführen als Bit-Flags. Netzwerkprotokolle packen mehrere Felder in einzelne Ganzzahlen. Grafikcode extrahiert RGB-Kanäle mit Bitmasken. Eingebettete Systeme steuern Hardwareregister Bit für Bit. Kryptografie-Algorithmen (AES, SHA) setzen auf XOR. Hash-Algorithmen nutzen Shifts, um Bits zu vermischen. Compiler ersetzen einfache Multiplikationen und Divisionen automatisch durch schnellere Shifts. Ein Verständnis bitweiser Operationen ist essenziell für Wettbewerbsprogrammierung, Systemprogrammierung und performancekritischen Code.
Was ist der Unterschied zwischen logischen und bitweisen Operatoren?
Logische 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.