Bitflags-Rechner: Bitmasken kombinieren

Bitflags-Rechner: Flags ankreuzen und den Wert erhalten oder eine Zahl eingeben und sehen, welche Flags in der Bitmaske gesetzt sind.

–

 

Wert in allen Zahlensystemen
DarstellungWert

Code-Beispiel

Alles läuft in Ihrem Browser. Eingaben verlassen Ihr Gerät nicht.

Bitflags kombinieren und zerlegen

Der Bitflags-Rechner hilft beim Umgang mit Bitmasken. Viele Programme speichern mehrere Ja-Nein-Eigenschaften in einer einzigen Zahl, einem Bitfeld: Jedes Flag belegt ein Bit, also einen Wert, der eine Zweierpotenz ist. READ = 1, WRITE = 2, DELETE = 4 und SHARE = 8 ergeben zusammen den Wert 15. Um eine Bitmaske zu berechnen, kreuzen Sie die gewünschten Flags an; der Rechner bildet die ODER-Verknüpfung und zeigt das Ergebnis dezimal, hexadezimal, oktal und binär.

Umgekehrt können Sie eine Bitmaske zerlegen: Geben Sie einen Wert wie 0x12 ein, und der Rechner zeigt, welche Flags gesetzt sind. Bits, für die keine Definition existiert, meldet er gesondert. Vorlagen gibt es für TCP-Flags (FIN, SYN, RST, PSH, ACK, URG, ECE, CWR), Unix-Dateirechte samt setuid, setgid und Sticky-Bit sowie die Windows-Dateiattribute. Eigene Flags kombinieren Sie, indem Sie die Definitionen als NAME = Wert eintragen; Werte dürfen dezimal oder hexadezimal sein.

Das Code-Beispiel zeigt die Definition als Enum-Flags in TypeScript, C# (mit [Flags]), Python (enum.IntFlag) oder als C-Konstanten, dazu das Setzen, Prüfen und Löschen eines Flags. Bis 53 Bit rechnet das Werkzeug mit normalen Zahlen, darüber mit BigInt, sodass auch 64-Bit-Masken korrekt bleiben. Für einzelne Verknüpfungen wie AND, OR, XOR und Shifts eignet sich der Rechner für bitweise Operationen, Dateirechte wie 755 erklärt der chmod-Rechner.

Anleitung: Bitflags-Rechner in 4 Schritten

  1. Unter „Vorlage“ eine Flag-Liste wählen, etwa TCP-Flags oder Unix-Dateirechte, oder eigene Flags unter „Flag-Definitionen“ eintragen.
  2. Die gewünschten Flags in der Liste ankreuzen; der Wert erscheint sofort dezimal, hexadezimal, oktal und binär.
  3. Umgekehrt im Feld „Wert“ eine Zahl wie 0x12 eingeben, um zu sehen, welche Flags gesetzt sind.
  4. Den Ausdruck mit | oder das Code-Beispiel mit „Kopieren“ übernehmen.

Typische Anwendungsfälle

  • Einen Statuswert aus einer Datenbank oder API zerlegen, der mehrere Eigenschaften als Bits speichert.
  • TCP-Flags aus einem Paketmitschnitt wie 0x18 in PSH und ACK übersetzen.
  • Für ein C#- oder TypeScript-Enum mit Flags prüfen, ob die Werte wirklich Zweierpotenzen sind.
  • Windows-Dateiattribute aus einem Skript entschlüsseln.
Fragen

Häufige Fragen

Wie prüfe ich, ob ein Flag gesetzt ist?

Mit einer UND-Verknüpfung: (wert & FLAG) !== 0 in JavaScript bzw. (wert & FLAG) != 0 in C#. Für mehrere Flags auf einmal: (wert & MASKE) === MASKE.

Was bedeuten die TCP-Flags 0x18?

0x18 ist 16 + 8, also ACK und PSH. Ein Paket mit 0x02 ist ein SYN, 0x12 ein SYN-ACK aus dem Verbindungsaufbau.

Warum zeigt der Rechner „unbekannte Bits“?

Wenn der eingegebene Wert Bits enthält, für die keine Flag-Definition existiert. Das deutet auf eine unvollständige Liste oder einen falsch gelesenen Wert hin.

Darf ein Flag den Wert 0 haben?

Ein Wert 0 steht üblicherweise für „keine Flags“, etwa None = 0. Er lässt sich nicht mit & prüfen und wird deshalb nur angezeigt, wenn der Gesamtwert 0 ist.

Warum müssen Flag-Werte Zweierpotenzen sein?

Nur dann belegt jedes Flag genau ein eigenes Bit und lässt sich mit & eindeutig prüfen. Werte wie 3 sind zulässig, stehen aber für eine Kombination aus 1 und 2.

Wie entferne ich ein Flag aus einem Wert?

Mit wert & ~FLAG. Zum Umschalten dient wert ^ FLAG, zum Setzen wert | FLAG.

Weitere Werkzeuge

Das könnte auch helfen

Alle 558 Werkzeuge