ForHosting KIT · Ferramentas para dev

Decodificador de máscara de bits

O decodificador de flags de máscara de bits transforma um número inteiro compacto nos nomes das permissões, funcionalidades, estados ou opções que ele representa.

● BetaGrátis · no seu navegador
Use pelo WebAPIE-mailTelegramApp em breve

Informe o valor armazenado e uma lista que associe cada nome a um bit com valor de potência de dois. O resultado preserva a ordem declarada, retorna todos os nomes ativos e informa qualquer parcela restante de bits não definidos. Isso ajuda você a ler campos de banco de dados, payloads de API, valores de protocolos, configurações de acesso e sistemas legados sem converter números manualmente para binário nem depender do comportamento específico de operadores de uma linguagem.

Descreva a máscara com bits nomeados explicitamente

Comece com o inteiro não negativo no campo value e adicione uma linha em flags para cada significado definido pelo seu sistema. Cada linha contém um nome e um bit. O bit precisa ser uma potência de dois positiva: 1, 2, 4, 8, 16 e assim por diante. Esses valores representam posições binárias independentes, portanto podem ser combinados com segurança por soma ou OR bit a bit. Os nomes têm os espaços externos removidos e devem ser únicos; os valores dos bits também precisam ser exclusivos, pois dois rótulos na mesma posição tornariam a resposta ambígua. As definições podem aparecer em qualquer ordem; active_flags respeita a sequência fornecida, permitindo que a aplicação mantenha a apresentação desejada. Zero é uma máscara válida e retorna um array active_flags vazio. São aceitos inteiros não negativos exatos do JavaScript até 9,007,199,254,740,991 e bits individuais até 4,503,599,627,370,496. Registros inválidos geram falhas claras, sem coerção silenciosa para uma lista de permissões aparentemente plausível, porém errada.

Entenda flags ativas e bits desconhecidos

Para cada definição, o decodificador verifica se aquela posição binária está presente em value. Quando está, o nome correspondente é incluído em active_flags e o valor do bit entra no total ativo declarado. A resposta também contém unknown_bits, calculado pela subtração de todos os bits ativos declarados do valor original. Quando unknown_bits é zero, as definições fornecidas explicam toda a máscara. Um valor diferente de zero não representa necessariamente um erro: ele pode indicar uma flag recém-adicionada pelo servidor, uma opção interna omitida de propósito ou uma incompatibilidade de versão do esquema. Exibir esse restante é mais seguro que descartar informação. Por exemplo, se value for 13 e os bits declarados forem read=1, write=2, execute=4 e admin=8, os nomes ativos serão read, execute e admin, e unknown_bits será zero. Se o bit 8 não fosse declarado, a mesma entrada retornaria read e execute, com unknown_bits igual a 8. O valor original volta sem alterações para manter a procedência exata em logs e verificações posteriores.

Use decodificação determinística em permissões e opções

Máscaras de bits aparecem em colunas de bancos de dados, modos de sistemas operacionais, controles de funcionalidades, registradores de dispositivos, estados de jogos e respostas de APIs externas porque reúnem muitos booleanos em um inteiro. Esta capacidade torna esses campos legíveis no limite de uma integração. Armazene as definições junto da versão do esquema, execute o decodificador quando o registro entrar no fluxo e use active_flags para exibição, filtros ou verificações de política. Monitore unknown_bits como sinal de compatibilidade: um restante diferente de zero pode encaminhar o registro para análise antes que o software interprete uma permissão nova como um valor antigo comum. O algoritmo realiza operações limitadas sobre no máximo 256 definições e não usa rede, relógio, localidade, aleatoriedade nem estado mutável; o mesmo JSON sempre gera o mesmo JSON. Ele também evita os operadores bit a bit assinados de 32 bits do JavaScript e processa máscaras exatas muito acima de 32 bits. O navegador e a API usam a mesma biblioteca. A consulta interativa é gratuita, e tarefas automatizadas concluídas custam US$ 0,002.

Explique campos de controle de acesso

Converta uma máscara de permissões armazenada em nomes legíveis antes de exibi-la em um painel administrativo ou relatório de auditoria.

Inspecione opções de APIs e protocolos

Decodifique valores combinados recebidos de uma integração e mantenha bits não declarados como alerta de mudança de esquema.

Migre configurações legadas

Expanda ajustes numéricos compactos em booleanos ou rótulos explícitos durante uma migração de banco de dados ou aplicação.

Quais valores podem ser decodificados?

Qualquer inteiro seguro do JavaScript que não seja negativo. Cada bit declarado deve ser uma potência de dois positiva e exclusiva.

O que significa unknown_bits?

É a parcela de value que está ativa, mas não aparece nas definições fornecidas. Zero indica que as declarações explicam a máscara inteira.

O resultado preserva a ordem das flags?

Sim. active_flags segue a ordem das definições recebidas, independentemente da sequência numérica dos bits.

Os nomes das flags podem conter espaços?

Sim. Os nomes são strings e os espaços externos são removidos. Nomes vazios ou duplicados após esse ajuste são rejeitados.

Quanto custa a API?

Cada tarefa concluída na API usa o preço-base publicado de US$ 0,002. Você também pode executar o decodificador gratuitamente no navegador.

Tudo nesta página está disponível via API. Esta seção é para equipes que querem integrar a ferramenta aos próprios sistemas; quem não precisa disso pode simplesmente usar a ferramenta acima.

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

Autenticação por token Bearer. Um único POST coloca a tarefa na fila; o resultado chega por webhook ou link assinado.

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

A API é assíncrona: cada chamada devolve um task_id na hora. Se preferir polling, consulte o status a até 1 requisição por segundo.

por chamadaUS$ 0,002

Preço publicado, sem tokens nem créditos escondidos. Tarefa que falha não é cobrada.

max_flags256
max_safe_integer9007199254740991
HTTPCódigoO que significa
401unauthorizedToken ausente ou inválido. Confira o header Authorization.
402insufficient_balanceSaldo insuficiente para esta tarefa. Faça uma recarga e tente de novo.
404unknown_typeEsse tipo de tarefa não existe. Confira o campo type no catálogo.
429rate_limitedMuitas requisições em pouco tempo. Espere um instante e tente de novo.

Ver a documentação completa do KIT →