ForHosting KIT · Outils pour développeurs

Décodeur de masque de bits

Le décodeur de drapeaux transforme un entier compact en noms de permissions, de fonctions, d’états ou d’options.

● BetaGratuit · dans votre navigateur
Utilisez-le depuis WebAPIE-mailTelegramApp bientôt

Indiquez la valeur enregistrée et une liste associant chaque nom à un bit dont la valeur est une puissance de deux. Le résultat conserve l’ordre de votre déclaration, renvoie tous les noms actifs et signale la partie correspondant à des bits non définis. Cet outil facilite la lecture des champs de base de données, charges utiles d’API, valeurs de protocole, réglages d’accès et configurations anciennes, sans conversion binaire manuelle ni dépendance aux particularités des opérateurs d’un langage.

Décrivez le masque avec des bits nommés explicitement

Commencez par l’entier positif ou nul du champ value, puis ajoutez une ligne dans flags pour chaque signification définie par votre système. Chaque ligne contient un nom et un bit. Le bit doit être une puissance de deux strictement positive : 1, 2, 4, 8, 16, etc. Ces valeurs représentent des positions binaires indépendantes et peuvent donc être combinées sans risque par addition ou avec l’opérateur OR bit à bit. Les espaces extérieurs des noms sont supprimés et chaque nom doit être unique. Les valeurs de bit doivent également être distinctes, car deux libellés pour une même position rendraient la réponse ambiguë. Vous pouvez classer les définitions comme vous le souhaitez : active_flags respecte cet ordre afin que votre application conserve sa présentation habituelle. Zéro constitue un masque valide et produit un tableau active_flags vide. Les entiers JavaScript exacts de 0 à 9,007,199,254,740,991 et les bits individuels jusqu’à 4,503,599,627,370,496 sont acceptés. Tout enregistrement non valide échoue explicitement au lieu d’être converti silencieusement en une liste plausible mais erronée.

Interprétez les drapeaux actifs et les bits inconnus

Pour chaque définition, le décodeur vérifie si la position binaire correspondante figure dans value. Si elle est présente, son nom est ajouté à active_flags et sa valeur alimente le total actif déclaré. La réponse comprend aussi unknown_bits, obtenu en retirant de la valeur initiale tous les bits actifs déclarés. Lorsque unknown_bits vaut zéro, vos définitions expliquent entièrement le masque. Une valeur non nulle n’est pas forcément une erreur : elle peut révéler un nouveau drapeau ajouté côté serveur, une option interne volontairement exclue ou un décalage entre versions de schéma. Afficher ce reliquat évite de perdre une information importante. Ainsi, avec value égal à 13 et les bits read=1, write=2, execute=4 et admin=8, les noms actifs sont read, execute et admin, tandis que unknown_bits vaut zéro. Si le bit 8 était absent des définitions, la même entrée renverrait read et execute avec unknown_bits égal à 8. La valeur d’origine est restituée telle quelle afin de préserver une provenance exacte dans les journaux et contrôles ultérieurs.

Intégrez un décodage déterministe aux permissions et options

Les masques de bits sont fréquents dans les colonnes de base de données, modes de système d’exploitation, interrupteurs de fonctionnalités, registres d’appareil, états de jeu et réponses d’API tierces, car ils regroupent de nombreux booléens dans un entier. Cette capacité rend ces champs compréhensibles à la frontière d’une intégration. Conservez les définitions avec la version du schéma, appelez le décodeur à l’arrivée de chaque enregistrement et exploitez active_flags pour l’affichage, le filtrage ou les contrôles de règles. Surveillez unknown_bits comme indicateur de compatibilité : un reliquat non nul peut déclencher une vérification avant qu’un logiciel ne traite une nouvelle permission comme une ancienne valeur ordinaire. L’algorithme effectue des calculs bornés sur 256 définitions au maximum et n’utilise ni réseau, ni horloge, ni paramètres régionaux, ni hasard, ni état mutable ; un JSON identique donne toujours le même JSON. Il évite aussi les opérateurs JavaScript signés sur 32 bits et traite donc exactement des masques bien plus grands. Le navigateur et l’API partagent la même bibliothèque. L’essai interactif est gratuit et chaque tâche automatisée réussie coûte $0.002.

Expliquez les champs de contrôle d’accès

Transformez un masque de permissions enregistré en noms lisibles avant son affichage dans une console d’administration ou un export d’audit.

Examinez les options d’API et de protocoles

Décodez les valeurs combinées d’une intégration tout en conservant les bits non déclarés comme alerte de dérive du schéma.

Migrez une configuration ancienne

Développez des réglages numériques compacts en booléens ou libellés explicites pendant la migration d’une application ou d’une base.

Quelles valeurs puis-je décoder ?

Tout entier JavaScript sûr positif ou nul. Chaque bit déclaré doit être une puissance de deux positive et unique.

Que représente unknown_bits ?

Il s’agit de la partie active de value qui ne correspond à aucune définition fournie. Zéro signifie que les déclarations couvrent tout le masque.

L’ordre des drapeaux est-il conservé ?

Oui. active_flags suit l’ordre des définitions reçues, quelle que soit la valeur numérique de leurs bits.

Les noms peuvent-ils contenir des espaces ?

Oui. Ce sont des chaînes dont les espaces extérieurs sont retirés. Les noms vides ou les doublons ainsi normalisés sont refusés.

Quel est le tarif de l’API ?

Chaque tâche d’API réussie applique le prix de base publié de $0.002. Vous pouvez aussi utiliser gratuitement le décodeur dans le navigateur.

Tout sur cette page est disponible par programmation. Cette section s'adresse aux équipes qui veulent l'intégrer à leurs systèmes ; les autres peuvent simplement utiliser l'outil ci-dessus.

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

Authentification par jeton Bearer : un seul POST met la tâche en file d’attente, et le résultat vous parvient par webhook ou lien signé.

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"
  }
}

L’API est asynchrone : chaque appel renvoie un task_id immédiatement, puis vous interrogez l’état à raison d’une requête par seconde.

par requête$0.002

Le prix est publié, sans tokens ni crédits. Une tâche qui échoue n’est pas facturée.

max_flags256
max_safe_integer9007199254740991
HTTPCodeSignification
401unauthorizedClé API absente ou invalide : vérifiez l’en-tête Authorization.
402insufficient_balanceSolde insuffisant : rechargez votre compte pour lancer cette tâche.
404unknown_typeType de tâche inconnu : vérifiez le champ type de votre requête.
429rate_limitedTrop de requêtes : ralentissez la cadence, puis réessayez.

Consulter la documentation complète du KIT →