Calculateur de bits nécessaires pour représenter des valeurs
Ce calculateur détermine la plus petite largeur binaire pouvant contenir un nombre donné d’états distincts ou tous les entiers non négatifs jusqu’à un maximum.
Lancer gratuitement
Il traite correctement les puissances de deux, les limites et zéro, puis indique les bits requis et la plage représentable. Utilisez-le pour dimensionner registres, champs codés, interfaces numériques et formats compacts.
Choisissez la bonne donnée
Déterminez si votre besoin porte sur un nombre de possibilités ou sur le plus grand code numérique. Utilisez distinct_values pour des états, catégories, symboles ou modes exigeant seulement des codes uniques. Utilisez max_value pour inclure chaque entier de zéro à une borne. De 0 à 1000, il existe 1001 valeurs. Renseignez un seul champ. Seuls les entiers sûrs non négatifs sont acceptés, afin d’éviter fractions, arrondis et confusion entre maximum et quantité.
Calcul de la largeur minimale
Un champ de b bits fournit 2 puissance b motifs. Le calcul cherche le plus petit b offrant assez de motifs par doublements exacts, sans erreur de logarithme aux puissances de deux. 8 valeurs demandent 3 bits; 9 en demandent 4 et offrent 16 motifs. Pour un maximum, zéro compte aussi: 255 tient sur 8 bits, 256 en exige 9. Un état abstrait unique contient zéro bit d’information, mais l’entier zéro reçoit conventionnellement une largeur de 1 bit.
Adaptez le résultat au système
Considérez bits comme le minimum mathématique, puis vérifiez les tailles disponibles. Registres, protocoles et bases proposent souvent 8, 16, 32 ou 64 bits. representable_values et maximum_representable_value montrent la réserve. Le calcul suppose des codes non signés, contigus et commençant à zéro. Prévoyez séparément signe, sentinelles, parité, correction, alignement et indicateurs. Il donne une borne inférieure, pas une architecture complète. Aucun réseau n’est utilisé; l’API automatisée coûte $0.002.
Cas d’usage
Dimensionner un sélecteur
Attribuez un code unique à chaque mode avec la largeur minimale.
Vérifier un capteur
Confirmez les bits requis de zéro au maximum documenté.
Prévoir des identifiants compacts
Estimez la largeur avant de choisir un stockage aligné sur l’octet.
Questions fréquentes
Quelle formule est utilisée?
Le plafond du logarithme en base 2; des doublements exacts évitent les arrondis.
Pourquoi ajouter un au maximum?
Zéro est inclus: de zéro à M, il existe M plus un entiers.
Pourquoi zéro bit pour une valeur?
Un état unique n’exige aucun choix, même si un format réserve de l’espace.
Le bit de signe est-il inclus?
Non. Le mode maximal traite les entiers non négatifs non signés.
Puis-je remplir les deux champs?
Non. Fournissez-en exactement un pour lever toute ambiguïté.
Quel est le prix de l’API?
Le tarif de base est $0.002 par requête; le navigateur reste gratuit.
Pour les développeurs — accès API
Tout sur cette page est disponible par programmation. Cette section s'adresse aux équipes qui veulent l'intégrer à leurs systèmes ; les autres peuvent simplement utiliser l'outil ci-dessus.
Endpoint
Authentification par jeton Bearer : un seul POST met la tâche en file d’attente, et le résultat vous parvient par webhook ou lien signé.
Appeler depuis votre 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)Exemple de requête
{
"distinct_values": 1000
}Exemple de réponse
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "elec.bits_for_values",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}L’API est asynchrone : chaque appel renvoie un task_id immédiatement, puis vous interrogez l’état à raison d’une requête par seconde.
Tarifs
Le prix est publié, sans tokens ni crédits. Une tâche qui échoue n’est pas facturée.
Erreurs
| HTTP | Code | Signification |
|---|---|---|
401 | unauthorized | Clé API absente ou invalide : vérifiez l’en-tête Authorization. |
402 | insufficient_balance | Solde insuffisant : rechargez votre compte pour lancer cette tâche. |
404 | unknown_type | Type de tâche inconnu : vérifiez le champ type de votre requête. |
429 | rate_limited | Trop de requêtes : ralentissez la cadence, puis réessayez. |