Was bedeuten "&", "|", "^" im Code und wie setze ich Bit 5?
Bitweise Operatoren sind die Grundlage vieler Low-Level-Tricks: Permission-Masks (Unix `chmod`), Bit-Flags, numerische Optimierungen (`x & 1` statt `x % 2`), Parsing von Netzwerkprotokollen (TCP-Flags, RGBA-Farben), Memory-Management.
Zwei Zahlen in A und B tippen (als dec, hex 0x, bin 0b, oct 0o, auto-erkannt), eine Breite wählen (8-Bit, 16-Bit, 32-Bit, 64-Bit) und jede Operation live sehen: AND, OR, XOR, NOT, Shifts, Rotationen, Popcount, niedrigstes gesetztes Bit.
Jedes Ergebnis im Bit-Grid (Bit klicken zum Flippen), in Binär, dec (signed + unsigned), hex und oct. Berechnet mit BigInt, sodass 64-Bit-Werte auch über `Number.MAX_SAFE_INTEGER` korrekt funktionieren.
So nutzt du das Tool
- Eine Breite wählen: 8 / 16 / 32 / 64 Bit. Entscheidet, wie viele Bits der Operand hat und wie Overflow erkannt wird.
- Signed aktivieren, wenn Werte als Zweierkomplement interpretiert werden sollen (z. B. -1 in 8-Bit = 0b11111111).
- A und B eintragen. Jedes Format akzeptiert: `255`, `0xFF`, `0b11111111`, `0o377`. Format wird am Präfix erkannt.
- Ein Bit im Grid klicken, um es zu flippen (toggle). Operationen rechnen sofort neu, alle 12+ Ergebnisse updaten live.
- Für Shifts und Rotationen n mit dem Slider setzen. Für Single-Bit-Ops (set/clear/toggle/test) Bit N setzen.
- "Differing Bits hervorheben" zeigt orange, welche Bits die Operation verändert hat, perfekt um zu sehen, was `XOR` oder `<<` wirklich macht.
- Jedes Ergebnis in jedem Format (BIN, HEX, OCT, DEC) mit einem Klick kopieren.
Wann das nützlich ist
Echte Situationen, in denen du bitweise Operationen kennen musst:
- Unix-Datei-Permissions: `chmod 755` ist eine Bitmaske. `rwxr-xr-x` = `0b111101101` = 0o755 = 493 dec. Jedes Bit ist ein Flag (read/write/execute × owner/group/other).
- TCP/IP-Flags: der TCP-Header hat 9 Flag-Bits (SYN, ACK, FIN, RST, PSH, URG...). Ein Parser dekodiert sie mit Masken: `flags & 0x01` ist FIN, `flags & 0x02` ist SYN etc.
- RGBA-Farben: 32-Bit packt 4 Kanäle zu je 8 Bit. `red = (color >> 24) & 0xFF`, `green = (color >> 16) & 0xFF` und so weiter.
- Konfigurations-Flags: C-/Rust-Libraries übergeben Dutzende Optionen als einen Int. `OPT_ASYNC | OPT_VERBOSE | OPT_RETRY`. Prüfen: `if (opts & OPT_ASYNC)`.
- Hash-Funktionen und Krypto: Implementierungen von MD5, SHA, AES nutzen Rotationen (`ROL`, `ROR`), XORs und Shifts. Meist 32-Bit.
- Bitmap-Indexes in Datenbanken: Postgres, Oracle, MySQL nutzen bitweise Ops fürs Filtern.
- Hardware-GPIO: Arduino, ESP32, Raspberry Pi steuern Pins mit `PORTB |= (1 << 5)`. Jedes Bit = Pin-Zustand.
- Netzwerk-Adressmasken: `192.168.1.0/24` ist Maske `0xFFFFFF00`. Prüfen, ob eine IP im Netz ist: `(ip & mask) == network`.
- Algorithmen: Bitset als kompaktes Set, Brian-Kernighan-Trick für Popcount, Sieb des Eratosthenes auf Bits, Fenwick-Tree.
Um zwischen Zahlensystemen umzurechnen, schau unseren Zahlenbasis-Konverter. Für Byte-Größen schau Dateigrößen-Konverter.