Gerador de máscara de bits
Quatro uns seguidos a partir do bit 0 formam a máscara 15: 0b1111 em binário e 0xf em hexadecimal. Informe a largura e, se precisar, o bit mais baixo, e receba a máscara nas três bases com a faixa de bits que ela cobre. Grátis no seu navegador.
- Grátis
- Funciona no seu navegador
- Sem cadastro
- Seus dados não saem do seu aparelho
Executar grátis
Exemplo resolvido
- Bits
- 4
- Início
- 0
- Máscara em decimal
- 15
- Máscara em binário
- 0b1111
- Máscara em hexadecimal
- 0xf
- Bit menos significativo
- 0
Uma máscara de bits de uns consecutivos é o bloco básico de campos de flags, cabeçalhos de protocolo empacotados e janelas de registrador em firmware e código de sistemas. Você precisa de N uns em sequência, às vezes deslocados à esquerda para o campo começar no bit k, e do mesmo valor em binário para revisão bit a bit, em decimal para constantes e em hexadecimal para datasheets. Este gerador de máscara de bits aceita a largura em bits e uma posição inicial opcional do bit setado mais baixo, aplica a fórmula clássica de um deslocado à esquerda pela largura menos um e depois pelo início, e devolve decimal, binário com prefixo 0b e hexadecimal com prefixo 0x, além do intervalo inclusivo de bits.
Como máscaras de uns consecutivos são montadas
Uma sequência de uns consecutivos é a máscara usada quando um campo de vários bits vive dentro de uma palavra maior. Se o campo tem quatro bits de largura e fica no extremo menos significativo, a máscara é binário 1111, decimal quinze, hex 0xf. Se esse mesmo campo de quatro bits começa no bit dois, você mantém os quatro uns e os desloca duas posições à esquerda, obtendo binário 111100, decimal sessenta, hex 0x3c.
Algebricamente a sequência sem deslocamento é dois elevado à largura menos um, escrita em forma de shift como parêntese aberto um left-shift largura parêntese fechado menos um; multiplicar por dois elevado ao início é o segundo deslocamento à esquerda. O bit zero é sempre o menos significativo, alinhado a C, JavaScript, Rust e quase todos os manuais de CPU.
Onde um gerador de máscara de bits agrega valor
Autores de firmware e drivers definem todos os dias campos de status e controle empacotados; gerar a máscara uma vez evita erros de um a mais ou a menos quando o campo se move em uma revisão de silício. Projetistas de protocolo e engenheiros de engenharia reversa documentam formatos de fio com constantes hex e precisam de diagramas binários correspondentes para posts e RFCs.
Autores de compiladores e VMs emitem sequências de máscara e deslocamento para extração de bitfields e querem um oráculo que bata com a forma de livro-texto em suites de regressão. Educadores que ensinam operadores bit a bit podem dar largura e início aos alunos e comparar respostas 0b e 0x manuscritas com um serviço determinístico em vez de um simulador de CPU completo.
Mantenha requisições pequenas, fixe as três bases nos testes e obtenha constantes de flag reproduzíveis para SDKs, trechos de CMS e workers de borda sem montar sua própria biblioteca local de bit-twiddling.
Casos de uso
Constantes de registrador e flags empacotados
Gere máscaras decimal, 0b e 0x para campos de registrador multibit com largura e início LSB para que drivers e tabelas de datasheet permaneçam consistentes.
Documentação de protocolo e formato de fio
Documente bitfields de cabeçalho com diagramas binários e constantes hex da mesma fórmula de uns consecutivos.
Perguntas frequentes
O que significa o parâmetro start?
start é a posição do bit setado mais baixo, contando a partir de zero no bit menos significativo.
Como crio a máscara de um campo que começa no bit 2?
Mantenha a largura do campo e informe 2 como bit mais baixo. Um campo de quatro bits vira binário 111100, decimal 60 e hexadecimal 0x3c: os mesmos quatro uns de 1111, deslocados duas posições para a esquerda.
Quais são os limites da largura e da posição inicial?
A largura vai de 1 a 53 bits, e a largura somada à posição inicial não pode passar de 53. Assim cada máscara é um inteiro que continua exato em decimal, binário e hexadecimal, sem arredondamento.
O bit zero é o menos significativo?
Sim. O bit 0 é sempre o de menor peso, como em C, JavaScript, Rust e quase todos os manuais de processadores, então as posições batem com as do seu datasheet.
Por que o hexadecimal não tem zeros à esquerda?
Porque ele aparece em minúsculas e sem preenchimento forçado, para que campos curtos sejam lidos de relance: quatro bits dão 0xf, e não um número comprido cheio de zeros. O binário também mostra só os bits significativos.
Ferramentas relacionadas
Para desenvolvedores — acesso via API
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.
Endpoint
Autenticação por token Bearer. Um único POST coloca a tarefa na fila; o resultado chega por webhook ou link assinado.
Chame do seu código
curl -X POST https://api.kit.forhosting.com/dev/bit-mask-generate \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"bits":4}'const res = await fetch("https://api.kit.forhosting.com/dev/bit-mask-generate", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"bits": 4
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/dev/bit-mask-generate",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"bits": 4
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/dev/bit-mask-generate", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"bits":4}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"bits":4}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/dev/bit-mask-generate", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Exemplo de requisição
{
"bits": 4
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "dev.bit_mask_generate",
"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.
Preço
Preço publicado, sem tokens nem créditos escondidos. Tarefa que falha não é cobrada.
Erros
| HTTP | Código | O que significa |
|---|---|---|
401 | unauthorized | Token ausente ou inválido. Confira o header Authorization. |
402 | insufficient_balance | Saldo insuficiente para esta tarefa. Faça uma recarga e tente de novo. |
404 | unknown_type | Esse tipo de tarefa não existe. Confira o campo type no catálogo. |
429 | rate_limited | Muitas requisições em pouco tempo. Espere um instante e tente de novo. |
Notas técnicas
Os limites mantêm cada resultado dentro de um inteiro seguro para que clientes JSON não percam precisão.
Como máscaras de uns consecutivos são montadas
Esta capacidade codifica exatamente essa identidade: mask equals open parenthesis open parenthesis one left-shift bits close parenthesis minus one close parenthesis left-shift start. A resposta ecoa bits e start, expõe mask_decimal como número JSON, mask_binary como string com prefixo 0b só com bits significativos, e mask_hex como hex minúsculo com prefixo 0x sem preenchimento forçado para campos curtos legíveis. lowest_bit e highest_bit nomeiam o intervalo inclusivo de bits setados para documentar uma janela de registrador sem recontar uns à mão. formula reescreve a identidade de deslocamento ao lado das constantes em docs gerados ou comentários de testes unitários.
Contrato de entrada, limites e comportamento de erro
A implementação usa deslocamentos BigInt internamente para operações intermediárias nunca caírem na armadilha de trinta e dois bits com sinal dos shifts numéricos de JavaScript, e depois converte para um Number seguro no campo decimal. Envie um corpo JSON via POST com bits obrigatório: um inteiro finito de um a cinquenta e três descrevendo quantos uns consecutivos você deseja. start é opcional e o padrão é zero; quando presente deve ser um inteiro de zero a cinquenta e dois nomeando a posição do bit setado mais baixo. Como os números JSON compartilham a mantissa IEEE de dupla precisão, a restrição start mais bits deve ser no máximo cinquenta e três para que a máscara nunca ultrapasse dois elevado a cinquenta e três menos um, Number.MAX_SAFE_INTEGER. Violações, bits ausente, não inteiros, booleanos e strings vazias falham com invalid_input nomeando a regra, e essas falhas não são cobradas. Chamadas bem-sucedidas sempre devolvem a mesma forma pura: bits e start ecoados, as três bases, os índices de bit inclusivos e a string formula. Exemplo: bits igual a oito e start igual a zero produz mask_decimal duzentos e cinquenta e cinco, mask_binary 0b11111111, mask_hex 0xff, lowest_bit zero, highest_bit sete. Exemplo: bits igual a três e start igual a cinco produz mask_decimal duzentos e vinte e quatro, binário 0b11100000, hex 0xe0, bits de cinco a sete setados.
Onde um gerador de máscara de bits agrega valor
Por ser parse de nível A, cada chamada bem-sucedida custa o preço base publicado US$ 0,002 sem tokens de modelo e sem rede de saída, e entrada inválida não consome saldo.
Casos de integração
Ensino de deslocamentos e máscaras bit a bit
Permita que alunos verifiquem ((1 << bits) - 1) << start em tarefas avaliadas sem contar uns à mão após cada deslocamento.
Perguntas técnicas
Como gero uma máscara de bits de uns consecutivos?
Envie bits (largura, 1–53) e start opcional (índice LSB, padrão 0). A API devolve ((1 << bits) - 1) << start como mask_decimal, mask_binary (0b…) e mask_hex (0x…).
Por que há um limite de 53 bits?
Números JSON usam doubles IEEE com mantissa de 53 bits. Manter start + bits ≤ 53 garante que mask_decimal seja um inteiro seguro exato sem perda de precisão.
O bit zero é o menos significativo?
Sim. A numeração de bits segue convenções comuns de CPU e linguagens: deslocar à esquerda por start move o campo em direção a bits mais significativos.
Quanto custa o gerador de máscara de bits?
A ferramenta do navegador é gratuita. Requisições API usam saldo pré-pago KIT a US$ 0,002 por chamada bem-sucedida; entrada inválida não é cobrada.