Calculadora de bits necessários para representar valores
Esta calculadora encontra a menor largura binária capaz de guardar uma quantidade definida de estados distintos ou todos os inteiros não negativos até um máximo.
Executar grátis
Ela trata potências exatas de dois, limites e zero corretamente, e informa os bits necessários e a faixa representável. Use-a para dimensionar registradores, campos codificados, interfaces digitais ou formatos inteiros compactos.
Escolha a entrada correspondente
Decida se o requisito é uma quantidade de possibilidades ou o maior código numérico. Use distinct_values para estados, categorias, símbolos ou modos que precisam apenas de códigos exclusivos. Use max_value quando todos os inteiros de zero até um limite inclusivo precisarem caber. Uma faixa de 0 a 1000 contém 1001 valores. Informe somente uma entrada. A calculadora aceita inteiros seguros não negativos, evitando frações, arredondamentos e o erro comum de tratar um máximo como se fosse uma contagem.
Como a largura mínima é calculada
Um campo binário de b bits oferece 2 elevado a b padrões. O cálculo encontra o menor b cuja capacidade atende à quantidade necessária, duplicando a capacidade para não depender do arredondamento de logaritmos. 8 valores exigem 3 bits; 9 exigem 4 e oferecem 16 padrões. Para um máximo, soma-se um porque zero também conta: 255 cabe em 8 bits, enquanto 256 exige 9. Um único estado abstrato contém zero bits de informação; já o inteiro zero recebe a representação convencional de 1 bit.
Use o resultado no sistema real
Considere bits o mínimo matemático e compare-o às larguras disponíveis. Registradores, protocolos e bancos de dados costumam oferecer 8, 16, 32 ou 64 bits, portanto talvez seja necessário arredondar para cima. representable_values e maximum_representable_value revelam a capacidade livre. O cálculo pressupõe códigos sem sinal, contíguos e iniciados em zero. Acrescente requisitos de sinal, sentinelas, paridade, correção de erros, alinhamento ou flags. Este é um limite inferior exato, não um projeto completo. A execução não usa rede; chamadas automatizadas custam US$ 0,002.
Casos de uso
Dimensionar um seletor digital
Encontre a menor largura que atribui um código exclusivo a cada modo ou posição.
Verificar a faixa de um sensor
Confirme os bits necessários para leituras de zero ao máximo documentado.
Planejar identificadores compactos
Estime a largura mínima antes de escolher um tipo alinhado a bytes.
Perguntas frequentes
Qual é a fórmula para valores distintos?
É o teto do logaritmo de base 2 da quantidade; a duplicação exata evita erros de arredondamento.
Por que somar um ao valor máximo?
A faixa não negativa inclui zero; de zero a M existem M mais um inteiros.
Por que um valor precisa de zero bits?
Com apenas um estado, não há escolha a codificar, embora um formato físico possa reservar espaço.
O resultado inclui bit de sinal?
Não. O modo de máximo cobre inteiros não negativos sem sinal.
Posso preencher os dois campos?
Não. Informe exatamente um para evitar ambiguidade entre quantidade e máximo inclusivo.
Quanto custa uma solicitação à API?
O preço-base publicado é US$ 0,002 por solicitação; o cálculo no navegador é gratuito.
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/elec/bits-for-values \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"distinct_values":1000}'const res = await fetch("https://api.kit.forhosting.com/elec/bits-for-values", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"distinct_values": 1000
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/elec/bits-for-values",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"distinct_values": 1000
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/elec/bits-for-values", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"distinct_values":1000}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"distinct_values":1000}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/elec/bits-for-values", 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
{
"distinct_values": 1000
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "elec.bits_for_values",
"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. |