ForHosting KIT · Entwickler-Tools

Bitmask-Flags dekodieren

Mit read (1), write (2), execute (4) und admin (8) ergibt der Wert 13 die Namen read, execute und admin, ohne ungeklärten Rest. Geben Sie die gespeicherte Zahl und Ihre eigene Liste benannter Bits ein, und Sie sehen, welche Rechte oder Optionen aktiv sind. Kostenlos in Ihrem Browser.

  • Kostenlos
  • Läuft in Ihrem Browser
  • Ohne Anmeldung
  • Ihre Daten bleiben auf Ihrem Gerät
Nutzen Sie es über WebAPIE-MailTelegramApp bald
Wenn Sie eingeben
Wert
13
Erhalten Sie
Aktive Flags
read, execute, admin
Unbekannte Bits
0

Der Bitmask-Flag-Dekodierer wandelt eine kompakte Ganzzahl in die Namen der dargestellten Berechtigungen, Funktionen, Zustände oder Optionen um. Geben Sie den gespeicherten Wert sowie eine Liste an, die jeden Namen einem Bit mit einer Zweierpotenz zuordnet. Das Ergebnis behält Ihre vorgegebene Reihenfolge bei, liefert alle aktiven Namen und weist den Restwert nicht definierter Bits aus.

Wie eine einzige Zahl mehrere Optionen speichert

Eine Bitmaske fasst viele Ja-Nein-Einstellungen in einer einzigen Ganzzahl zusammen. Jede Option belegt eine Binärstelle mit dem Wert einer Zweierpotenz: 1, 2, 4, 8, 16 und so weiter. Da sich diese Stellen nie überschneiden, ergibt die Summe der aktiven Optionen einen eindeutigen Wert, der sich wieder zerlegen lässt. Der Dekodierer prüft jeden Namen Ihrer Liste darauf, ob seine Stelle im gespeicherten Wert vorkommt. 13 ist zum Beispiel 8 plus 4 plus 1: Mit read als 1, execute als 4 und admin als 8 erscheinen diese drei als aktiv, in der Reihenfolge Ihrer Liste. Der Wert null ist gültig und bedeutet, dass keine Option aktiv ist.

Was der Rest verrät und typische Fehler

Der Teil der Zahl, den Ihre Liste nicht erklärt, wird gesondert gemeldet statt verworfen. Ein Rest von null heißt, dass Ihre Definitionen den ganzen Wert abdecken; alles andere weist oft auf ein serverseitig ergänztes Flag, eine bewusst weggelassene interne Option oder Listen aus zwei Versionen hin. Typische Fehler sind ein Flag mit einem Wert, der keine Zweierpotenz ist, etwa 3, oder dasselbe Bit für zwei Namen: Beides wird mit einer klaren Meldung abgelehnt, statt eine plausible, aber falsche Liste zu liefern. Namen werden von Leerzeichen am Rand befreit und müssen eindeutig sein.

Beschreiben Sie die Maske mit eindeutig benannten Bits

Jede Zeile enthält einen Namen und ein Bit. Das Bit muss eine positive Zweierpotenz sein: 1, 2, 4, 8, 16 und so weiter. Diese Werte stehen für unabhängige Binärpositionen und lassen sich daher sicher durch Addition oder bitweises OR kombinieren.

Äußere Leerzeichen in Namen werden entfernt; jeder Name muss eindeutig sein. Auch Bitwerte dürfen nicht doppelt vorkommen, da zwei Bezeichnungen für dieselbe Position das Ergebnis mehrdeutig machen würden. Exakte, nicht negative JavaScript-Ganzzahlen bis 9,007,199,254,740,991 und einzelne Bits bis 4,503,599,627,370,496 sind zulässig.

Ungültige Datensätze führen zu einer klaren Fehlermeldung, statt unbemerkt in eine scheinbar plausible, aber falsche Berechtigungsliste umgewandelt zu werden.

Zugriffssteuerungsfelder verständlich machen

Wandeln Sie eine gespeicherte Berechtigungsmaske vor der Anzeige in einer Verwaltungskonsole oder einem Audit-Export in lesbare Namen um.

Alte Konfigurationen migrieren

Erweitern Sie kompakte numerische Einstellungen bei einer Datenbank- oder Anwendungsmigration zu eindeutigen Wahrheitswerten oder Bezeichnungen.

Welche Werte kann ich dekodieren?

Jede nicht negative, sichere JavaScript-Ganzzahl. Jedes deklarierte Bit muss eine eindeutige positive Zweierpotenz sein.

Dürfen Flag-Namen Leerzeichen enthalten?

Ja. Namen sind Zeichenketten; äußere Leerzeichen werden entfernt. Leere oder nach dieser Bereinigung doppelte Namen werden abgelehnt.

Warum muss jedes Flag eine Zweierpotenz sein?

Weil jede Zweierpotenz, also 1, 2, 4, 8, 16 und so weiter, eine eigene Binärstelle belegt; so lassen sich Flags addieren, ohne sich zu überschneiden. Aus demselben Grund müssen jedes Bit und jeder Name eindeutig sein, sonst wäre die Antwort mehrdeutig.

Was bedeutet ein Restwert?

Er ist der Teil der Zahl, den Ihre Liste nicht erklärt. Dekodieren Sie 13 nur mit read (1), write (2) und execute (4), bleibt 8 übrig. Das deutet oft auf ein neues Flag, eine bewusst weggelassene interne Option oder unterschiedliche Versionen der Liste hin.

Spielt die Reihenfolge meiner Flag-Liste eine Rolle?

Nur für die Anzeige. Die Definitionen dürfen in beliebiger Reihenfolge stehen, und die aktiven Namen kommen in der von Ihnen festgelegten Reihenfolge zurück, sodass Ihre Oberfläche ihre bevorzugte Ordnung statt einer numerischen Sortierung behält.

Alles auf dieser Seite ist auch per API verfügbar. Dieser Abschnitt richtet sich an Teams, die es in ihre eigenen Systeme einbinden möchten; alle anderen nutzen einfach das Tool oben.

POSThttps://api.kit.forhosting.com/dev/bitmask-flags-decode

Authentifizierung per Bearer-Token. Ein einziger POST stellt die Aufgabe in die Warteschlange; das Ergebnis erhalten Sie per Webhook oder über einen signierten Link.

curl -X POST https://api.kit.forhosting.com/dev/bitmask-flags-decode \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"value":13,"flags":[{"name":"read","bit":1},{"name":"write","bit":2},{"name":"execute","bit":4},{"name":"admin","bit":8}]}'
{
  "value": 13,
  "flags": [
    {
      "name": "read",
      "bit": 1
    },
    {
      "name": "write",
      "bit": 2
    },
    {
      "name": "execute",
      "bit": 4
    },
    {
      "name": "admin",
      "bit": 8
    }
  ]
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "dev.bitmask_flags_decode",
  "status": "queued",
  "_links": {
    "result": "/tasks/tsk_…/result"
  }
}

Die API arbeitet asynchron: Sie erhalten sofort eine task_id. Polling ist mit 1 Anfrage pro Sekunde erlaubt.

pro Anfrage$0.002

Der Preis steht auf der Seite – keine Tokens, keine Credits. Fehlgeschlagene Aufgaben werden nicht berechnet.

max_flags256
max_safe_integer9007199254740991
HTTPCodeBedeutung
401unauthorizedDer API-Schlüssel fehlt oder ist ungültig – prüfen Sie den Authorization-Header (Bearer).
402insufficient_balanceIhr Guthaben reicht für diese Aufgabe nicht aus – Aufladungen verfallen nicht.
404unknown_typeUnbekannter Aufgabentyp – prüfen Sie das Feld „type“ gegen den Katalog.
429rate_limitedZu viele Anfragen – warten Sie kurz; Polling ist mit 1 Anfrage pro Sekunde erlaubt.

Damit lesen Sie Datenbankfelder, API-Nutzdaten, Protokollwerte, Zugriffseinstellungen und ältere Konfigurationen, ohne Zahlen manuell in Binärdarstellung umzuwandeln oder vom speziellen Operatorverhalten einer Programmiersprache abhängig zu sein.

Beschreiben Sie die Maske mit eindeutig benannten Bits

Beginnen Sie mit der nicht negativen Ganzzahl im Feld value und fügen Sie für jede in Ihrem System festgelegte Bedeutung eine Zeile zu flags hinzu. Sie können die Definitionen beliebig anordnen: active_flags übernimmt Ihre Reihenfolge, sodass eine Anwendung ihre bevorzugte Darstellung beibehält. Null ist eine gültige Maske und ergibt ein leeres active_flags-Array.

Verstehen Sie aktive Flags und unbekannte Bits

Für jede Definition prüft der Dekodierer, ob die zugehörige Binärposition in value gesetzt ist. Ein anderer Wert ist nicht zwangsläufig ein Fehler: Er kann auf ein neues serverseitiges Flag, eine bewusst ausgelassene interne Option oder unterschiedliche Schemaversionen hinweisen. Den Rest sichtbar zu lassen ist sicherer, als Informationen zu verwerfen. Der ursprüngliche Wert bleibt in der Antwort unverändert, damit Protokolle und spätere Prüfungen die genaue Herkunft bewahren. Ist sie vorhanden, wird der entsprechende Name an active_flags angehängt und der Bitwert zur erklärten aktiven Summe addiert. Die Antwort enthält außerdem unknown_bits. Dieser Wert entsteht, indem alle deklarierten aktiven Bits vom ursprünglichen Wert abgezogen werden. Ist unknown_bits gleich null, erklären Ihre Definitionen die Maske vollständig. Bei value 13 und den Bits read=1, write=2, execute=4 sowie admin=8 lauten die aktiven Namen beispielsweise read, execute und admin; unknown_bits ist null. Fehlt Bit 8 in den Definitionen, liefert dieselbe Eingabe read und execute sowie unknown_bits mit dem Wert 8.

Nutzen Sie deterministische Dekodierung für Rechte und Optionen

Bitmasken kommen häufig in Datenbankspalten, Betriebssystemmodi, Funktionsschaltern, Geräteregistern, Spielzuständen und Antworten externer APIs vor, weil viele Wahrheitswerte in eine Ganzzahl passen. Diese Funktion macht solche Felder an einer Integrationsgrenze verständlich. Zudem vermeidet er die vorzeichenbehafteten 32-Bit-Operatoren von JavaScript und verarbeitet daher exakte Masken weit oberhalb von 32 Bit. Speichern Sie die Flag-Definitionen zusammen mit der Schemaversion, rufen Sie den Dekodierer beim Eingang eines Datensatzes auf und verwenden Sie active_flags für Anzeige, Filterung oder Richtlinienprüfungen. Beobachten Sie unknown_bits als Kompatibilitätssignal: Ein Rest ungleich null kann den Datensatz zur Prüfung weiterleiten, bevor Software eine neue Berechtigung als gewöhnlichen alten Wert behandelt. Der Algorithmus führt begrenzte Berechnungen über höchstens 256 Definitionen aus und verwendet weder Netzwerk, Uhr, Gebietsschema, Zufall noch veränderlichen Zustand; identisches JSON erzeugt stets identisches JSON. Browser und API verwenden dieselbe Bibliothek. Die interaktive Nutzung ist kostenlos; erfolgreiche automatisierte API-Aufträge kosten $0.002.

API- und Protokolloptionen untersuchen

Dekodieren Sie kombinierte Optionswerte einer Integration und behalten Sie nicht deklarierte Bits als Warnsignal für Schemaänderungen bei.

Was bedeutet unknown_bits?

Das ist der gesetzte Teil von value, der keiner gelieferten Definition entspricht. Null bedeutet, dass die Deklarationen die gesamte Maske erklären.

Bleibt die Reihenfolge der Flags erhalten?

Ja. active_flags folgt unabhängig von den numerischen Bitwerten der Reihenfolge Ihrer gelieferten Definitionen.

Was kostet die API?

Jeder erfolgreiche API-Auftrag nutzt den veröffentlichten Grundpreis von $0.002. Im Browser können Sie den Dekodierer auch kostenlos ausführen.

Vollständige KIT-Dokumentation lesen →