ForHosting KIT · Ferramentas para dev

Decodificador de máscara de bits

Com read (1), write (2), execute (4) e admin (8), o valor 13 é decodificado como read, execute e admin, sem nenhuma sobra sem explicação. Informe o número salvo e sua própria lista de bits nomeados para ver quais permissões ou opções estão ativas. Grátis no seu navegador.

  • Grátis
  • Funciona no seu navegador
  • Sem cadastro
  • Seus dados não saem do seu aparelho
Use pelo WebAPIE-mailTelegramApp em breve
Se você digitar
Valor
13
Você obtém
Flags ativas
read, execute, admin
Bits desconhecidos
0

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. 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.

Como um único número guarda várias opções

Uma máscara de bits junta muitas opções de sim ou não em um único inteiro. Cada opção ocupa uma posição binária que vale uma potência de dois: 1, 2, 4, 8, 16 e assim por diante. Como essas posições nunca se sobrepõem, somar os valores das opções ativas dá um total único que depois pode ser desmontado. O decodificador confere cada nome da sua lista para ver se a posição dele está presente no valor salvo. O 13, por exemplo, é 8 mais 4 mais 1, então com read como 1, execute como 4 e admin como 8 essas três aparecem ativas, na ordem em que você as declarou. Um valor zero é válido e significa que nenhuma opção está ligada.

O que a sobra indica e os erros comuns

A parte do número que sua lista não explica aparece separada, em vez de ser descartada. Uma sobra zero significa que suas definições cobrem o valor inteiro; qualquer outra costuma indicar uma flag adicionada no servidor, uma opção interna deixada de fora de propósito ou listas de versões diferentes. Os erros típicos são dar a uma flag um valor que não é potência de dois, como 3, ou repetir o mesmo bit para dois nomes: os dois casos são recusados com uma mensagem clara, em vez de gerar uma lista plausível, porém errada. Os nomes têm os espaços das pontas removidos e precisam ser únicos.

Descreva a máscara com bits nomeados explicitamente

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. 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.

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.

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.

Por que cada flag precisa ser uma potência de dois?

Porque cada potência de dois, 1, 2, 4, 8, 16 e assim por diante, ocupa sua própria posição binária, e as flags podem ser somadas sem se sobrepor. Pelo mesmo motivo, cada bit e cada nome precisam ser únicos, ou a resposta ficaria ambígua.

O que significa sobrar um valor?

É a parte do número que sua lista não explica. Se você decodificar 13 só com read (1), write (2) e execute (4), sobram 8. Isso costuma indicar uma flag nova, uma opção interna deixada de fora de propósito ou versões diferentes da lista.

A ordem da minha lista de flags importa?

Só para a exibição. As definições podem vir em qualquer ordem, e os nomes ativos voltam na ordem em que você os declarou, então sua tela mantém a ordem preferida em vez de uma ordenação numérica.

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.

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. 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.

Entenda flags ativas e bits desconhecidos

Para cada definição, o decodificador verifica se aquela posição binária está presente em value. 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. O valor original volta sem alterações para manter a procedência exata em logs e verificações posteriores. 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. 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.

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. 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. 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. O navegador e a API usam a mesma biblioteca. A consulta interativa é gratuita, e tarefas automatizadas concluídas custam US$ 0,002.

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.

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.

Ver a documentação completa do KIT →