Calculadora de bits necesarios para representar valores
Esta calculadora determina la menor anchura binaria capaz de contener una cantidad indicada de estados distintos o todos los enteros no negativos hasta un máximo.
Ejecutar — gratis
Trata correctamente las potencias exactas de dos, los límites y el cero, y devuelve tanto los bits necesarios como el intervalo representable. Úsela para dimensionar registros, campos codificados, interfaces digitales o formatos enteros compactos.
Elija la entrada adecuada
Decida si su requisito es una cantidad de posibilidades o el código numérico más alto. Use distinct_values para estados, categorías, símbolos o modos que solo necesitan códigos únicos. Use max_value cuando deban caber todos los enteros desde cero hasta un límite incluido. Un campo de 0 a 1000 contiene 1001 valores. Facilite una sola entrada. La calculadora admite únicamente enteros seguros no negativos, con lo que evita fracciones, redondeos y el frecuente error de confundir un máximo con una cantidad.
Cómo se obtiene la anchura mínima
Un campo binario de b bits ofrece 2 elevado a b patrones. Se busca el menor b cuya capacidad cubra la cantidad requerida, duplicando la capacidad para evitar errores de logaritmos en potencias de dos. 8 valores necesitan 3 bits; 9 necesitan 4 y permiten 16 patrones. Para un máximo se suma uno porque el cero también cuenta: 255 cabe en 8 bits y 256 requiere 9. Un único estado abstracto aporta cero bits de información, mientras que el entero cero se expresa convencionalmente con 1 bit.
Aplique el resultado al sistema real
Tome bits como mínimo matemático y compárelo con los tamaños disponibles. Registros, protocolos y bases de datos suelen ofrecer 8, 16, 32 o 64 bits, por lo que quizá deba redondear hacia arriba. representable_values y maximum_representable_value muestran la capacidad sobrante. El cálculo supone códigos sin signo, consecutivos y desde cero. Reserve además espacio para signo, sentinelas, paridad, corrección de errores, alineación o indicadores. Es un límite inferior exacto, no un diseño completo. Compruebe siempre la especificación final del dispositivo antes de reservar el campo definitivo. Funciona sin red; la API automatizada aplica $0.002.
Qué puede hacer con ella
Dimensionar un selector digital
Obtenga la anchura mínima que asigna un código único a cada modo o posición.
Comprobar el rango de un sensor
Confirme los bits necesarios para cada lectura desde cero hasta el máximo documentado.
Planificar identificadores compactos
Estime la anchura mínima antes de elegir un tipo de almacenamiento alineado a bytes.
Preguntas frecuentes
¿Cuál es la fórmula para valores distintos?
Es el techo del logaritmo en base 2 de la cantidad; se usa duplicación exacta para evitar redondeos.
¿Por qué se suma uno al valor máximo?
El intervalo no negativo incluye cero; de cero a M hay M más uno enteros.
¿Por qué un solo valor necesita cero bits?
Con un único estado no hay elección que codificar, aunque un formato físico puede reservar espacio.
¿Se incluye un bit de signo?
No. El modo de máximo representa enteros no negativos sin signo.
¿Puedo indicar ambos campos?
No. Indique exactamente uno para evitar ambigüedad entre cantidad y máximo incluido.
¿Cuánto cuesta una solicitud API?
El precio base publicado es $0.002 por solicitud; en el navegador puede calcularlo gratis.
Para desarrolladores — acceso por API
Todo lo de esta página está disponible por programación. Esta sección es para equipos que quieren integrarlo en sus sistemas; el resto puede usar la herramienta de arriba sin más.
Endpoint de API
¿Prefiere automatizarlo? Un POST autenticado crea la tarea; el resultado llega por webhook o enlace firmado. La misma capacidad también se ejecuta aquí en la web, por email y desde Telegram — y pronto también desde nuestra app.
Llámela desde su stack
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)Ejemplo de solicitud
{
"distinct_values": 1000
}Ejemplo de respuesta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "elec.bits_for_values",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}La API es asíncrona: la llamada devuelve un task_id al instante y el resultado llega por webhook. El polling está limitado a 1 req/s por tarea.
Precio
Precio publicado — sin tokens ni créditos inventados. Una tarea fallida no se cobra.
Errores
| HTTP | Código | Significado |
|---|---|---|
401 | unauthorized | API key ausente o inválida. |
402 | insufficient_balance | El saldo no cubre el precio de la tarea. |
404 | unknown_type | El tipo de tarea no existe. |
429 | rate_limited | Demasiadas peticiones. Use el webhook en vez de sondear. |