Calculateur de bits nécessaires pour représenter des valeurs
Trouvez la largeur binaire minimale pour vos valeurs : 1000 états distincts demandent 10 bits, qui offrent 1024 combinaisons. Indiquez un nombre d'états ou la plus grande valeur à stocker, et voyez la marge disponible avant de choisir la taille d'un registre. Gratuit dans votre navigateur.
- Gratuit
- Fonctionne dans votre navigateur
- Sans inscription
- Vos données restent sur votre appareil
Lancer gratuitement
Exemple résolu
- Valeurs distinctes
- 1 000
- Type de saisie
- distinct_values
- Bits
- 10
- Valeurs représentables
- 1 024
- Valeur maximale représentable
- 1 023
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. 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. 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. 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.
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é.
Outils associés
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. |
Notes techniques
Choisissez la bonne donnée
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.
Adaptez le résultat au système
Registres, protocoles et bases proposent souvent 8, 16, 32 ou 64 bits. representable_values et maximum_representable_value montrent la réserve. Aucun réseau n’est utilisé; l’API automatisée coûte $0.002.
Questions techniques
Quel est le prix de l’API?
Le tarif de base est $0.002 par requête; le navigateur reste gratuit.