ForHosting KIT · Strumenti per sviluppatori

Decodificatore di bitmask

Il decodificatore di flag da bitmask trasforma un intero compatto nei nomi dei permessi, delle funzionalità, degli stati o delle opzioni rappresentati.

● BetaGratis · nel tuo browser
Usalo da WebAPIEmailTelegramApp presto

Inserisca il valore memorizzato e un elenco che associ ogni nome a un bit con valore pari a una potenza di due. Il risultato mantiene l’ordine dichiarato, restituisce tutti i nomi attivi e segnala l’eventuale valore residuo dovuto a bit non definiti. È utile per leggere campi di database, payload API, valori di protocolli, impostazioni di accesso e configurazioni legacy senza convertire manualmente i numeri in binario o dipendere dal comportamento specifico degli operatori di un linguaggio.

Descriva la maschera con bit denominati esplicitamente

Inizi con l’intero non negativo nel campo value, quindi aggiunga una riga in flags per ogni significato definito dal Suo sistema. Ogni riga contiene un nome e un bit. Il bit deve essere una potenza di due positiva: 1, 2, 4, 8, 16 e così via. Questi valori indicano posizioni binarie indipendenti e possono essere combinati in sicurezza tramite addizione oppure OR bit per bit. Gli spazi esterni dei nomi vengono rimossi e ogni nome deve essere univoco; anche i valori dei bit devono essere distinti, perché due etichette per la stessa posizione renderebbero ambiguo il risultato. Le definizioni possono comparire in qualsiasi ordine: active_flags segue la sequenza fornita, consentendo all’applicazione di conservare la presentazione desiderata. Zero è una maschera valida e produce un array active_flags vuoto. Sono accettati interi JavaScript esatti non negativi fino a 9,007,199,254,740,991 e singoli bit fino a 4,503,599,627,370,496. Un record non valido genera un errore esplicito, senza conversioni silenziose in elenchi di permessi plausibili ma errati.

Interpreti i flag attivi e i bit sconosciuti

Per ogni definizione, il decodificatore verifica se la relativa posizione binaria è presente in value. In caso affermativo, aggiunge il nome corrispondente ad active_flags e include il valore del bit nel totale attivo dichiarato. La risposta contiene inoltre unknown_bits, calcolato sottraendo dal valore originale tutti i bit attivi dichiarati. Se unknown_bits è zero, le definizioni fornite spiegano completamente la maschera. Un valore diverso da zero non è necessariamente un errore: può indicare un nuovo flag introdotto dal server, un’opzione interna esclusa intenzionalmente o una mancata corrispondenza tra versioni dello schema. Rendere visibile il residuo è più sicuro che perdere informazioni. Per esempio, con value pari a 13 e i bit read=1, write=2, execute=4 e admin=8, i nomi attivi sono read, execute e admin, mentre unknown_bits è zero. Se il bit 8 non fosse definito, lo stesso input restituirebbe read ed execute con unknown_bits pari a 8. Il valore originale viene restituito invariato, così registri e controlli successivi mantengono una provenienza esatta.

Utilizzi una decodifica deterministica per permessi e opzioni

Le bitmask sono frequenti nelle colonne dei database, nelle modalità dei sistemi operativi, negli interruttori di funzionalità, nei registri dei dispositivi, negli stati dei giochi e nelle risposte di API esterne, perché racchiudono molti valori booleani in un unico intero. Questa capacità rende leggibili tali campi al confine di un’integrazione. Conservi le definizioni insieme alla versione dello schema, richiami il decodificatore quando un record entra nel flusso e usi active_flags per visualizzazioni, filtri o controlli delle regole. Monitori unknown_bits come segnale di compatibilità: un residuo diverso da zero può inviare il record a revisione prima che il software scambi un nuovo permesso per un normale valore precedente. L’algoritmo esegue operazioni limitate su un massimo di 256 definizioni e non usa rete, orologio, impostazioni locali, casualità o stato mutabile; lo stesso JSON produce sempre lo stesso JSON. Evita inoltre gli operatori bit per bit JavaScript con segno a 32 bit, gestendo esattamente maschere molto superiori a 32 bit. Browser e API condividono la medesima libreria. L’uso interattivo è gratuito, mentre ogni attività API riuscita costa $0.002.

Spieghi i campi di controllo degli accessi

Trasformi una maschera di permessi memorizzata in nomi leggibili prima di mostrarla in un pannello amministrativo o in un’esportazione di audit.

Esamini opzioni di API e protocolli

Decodifichi valori combinati provenienti da un’integrazione, conservando i bit non dichiarati come avviso di variazione dello schema.

Migri configurazioni legacy

Espanda impostazioni numeriche compatte in booleani o etichette espliciti durante la migrazione di un database o di un’applicazione.

Quali valori posso decodificare?

Qualsiasi intero sicuro JavaScript non negativo. Ogni bit dichiarato deve essere una potenza di due positiva e univoca.

Che cosa indica unknown_bits?

È la parte attiva di value che non corrisponde ad alcuna definizione fornita. Zero indica che le dichiarazioni spiegano l’intera maschera.

L’ordine dei flag viene conservato?

Sì. active_flags segue l’ordine delle definizioni ricevute, indipendentemente dall’ordine numerico dei bit.

I nomi dei flag possono contenere spazi?

Sì. I nomi sono stringhe e gli spazi esterni vengono rimossi. I nomi vuoti o duplicati dopo la normalizzazione sono rifiutati.

Quanto costa l’API?

Ogni attività API completata usa il prezzo base pubblicato di $0.002. Può anche eseguire gratuitamente il decodificatore nel browser.

Tutto quello che vedi in questa pagina è disponibile anche via API. Questa sezione è per i team che vogliono integrarlo nei propri sistemi; chi non ne ha bisogno può semplicemente usare lo strumento qui sopra.

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

Autenticazione con Bearer token: un POST mette in coda l'attività e il risultato arriva via webhook o link firmato.

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 è asincrona: ricevi subito un task_id e puoi fare polling fino a 1 richiesta al secondo.

per richiesta$0.002

Prezzo pubblicato, senza token né crediti. Se l'attività fallisce, non paghi.

max_flags256
max_safe_integer9007199254740991
HTTPCodiceSignificato
401unauthorizedChiave API mancante o non valida: controlla l'header Authorization.
402insufficient_balanceCredito esaurito: ricarica per continuare a eseguire attività.
404unknown_typeTipo di attività sconosciuto: controlla il campo type della richiesta.
429rate_limitedTroppe richieste in poco tempo: rallenta e riprova tra qualche secondo.

Leggi la documentazione completa del KIT →