Générateur de masque de bits
Quatre uns consécutifs à partir du bit 0 donnent le masque 15 : 0b1111 en binaire et 0xf en hexadécimal. Indiquez la largeur et, au besoin, le bit le plus bas, et obtenez le masque dans les trois bases avec la plage de bits couverte. Gratuit dans votre navigateur.
- Gratuit
- Fonctionne dans votre navigateur
- Sans inscription
- Vos données restent sur votre appareil
Lancer gratuitement
Exemple résolu
- Bits
- 4
- Début
- 0
- Masque en décimal
- 15
- Masque en binaire
- 0b1111
- Masque en hexadécimal
- 0xf
- Bit de poids faible
- 0
Un masque de bits d’uns consécutifs est le brique de base des champs de drapeaux, des en-têtes de protocole condensés et des fenêtres de registres en firmware et en code système. Vous avez besoin de N uns d’affilée, parfois décalés à gauche pour que le champ commence au bit k, et de la même valeur en binaire pour la relecture bit à bit, en décimal pour les constantes et en hexadécimal pour les fiches techniques. Ce générateur de masque de bits accepte la largeur en bits et une position de départ optionnelle du bit le plus bas positionné à un, applique la formule classique d’un décalé à gauche de la largeur moins un puis du départ, et renvoie le décimal, le binaire préfixé 0b et l’hexadécimal préfixé 0x, plus la plage de bits inclusive.
Comment construire des masques d’uns consécutifs
Une suite d’uns consécutifs est le masque utilisé lorsqu’un champ multi-bits vit dans un mot plus large. Si le champ fait quatre bits et se place à l’extrémité la moins significative, le masque est binaire 1111, décimal quinze, hex 0xf. Si ce même champ de quatre bits commence au bit deux, vous conservez les quatre uns et les décalez de deux positions à gauche, ce qui donne binaire 111100, décimal soixante, hex 0x3c.
Algébriquement la suite non décalée vaut deux à la puissance largeur moins un, écrite en décalages comme parenthèse ouverte un left-shift largeur parenthèse fermée moins un ; multiplier par deux à la puissance départ est le second décalage à gauche. Le bit zéro est toujours le moins significatif, comme en C, JavaScript, Rust et presque tous les manuels CPU.
Où un générateur de masque de bits crée de la valeur
Les auteurs de firmware et de pilotes définissent chaque jour des champs d’état et de contrôle condensés ; générer le masque une fois évite les erreurs de un lorsque le champ se déplace dans une révision de silicium. Les concepteurs de protocoles et les reverse engineers documentent les formats filaires avec des constantes hex et ont besoin de diagrammes binaires correspondants pour articles et RFC.
Les auteurs de compilateurs et de machines virtuelles émettent des séquences masque-et-décalage pour extraire des bitfields et veulent un oracle aligné sur la forme des manuels pour les suites de régression. Les enseignants des opérateurs bit à bit peuvent donner largeur et départ aux étudiants et comparer leurs réponses 0b et 0x manuscrites à un service déterministe plutôt qu’à un simulateur CPU complet.
Cas d’usage
Constantes de registres et drapeaux condensés
Générez des masques décimal, 0b et 0x pour des champs de registre multi-bits selon la largeur et le départ LSB afin d’aligner pilotes et tableaux de fiches techniques.
Documentation de protocoles et formats filaires
Documentez les bitfields d’en-tête avec des diagrammes binaires et des constantes hex issus de la même formule d’uns consécutifs.
Questions fréquentes
Que signifie le paramètre start ?
start est la position du bit le plus bas à un, en comptant depuis zéro au bit le moins significatif.
Comment créer le masque d'un champ qui commence au bit 2 ?
Gardez la largeur du champ et indiquez 2 comme bit le plus bas. Un champ de quatre bits devient 111100 en binaire, 60 en décimal et 0x3c en hexadécimal : les mêmes quatre uns que 1111, décalés de deux positions vers la gauche.
Quelles sont les limites de largeur et de position de départ ?
La largeur va de 1 à 53 bits, et la largeur plus la position de départ ne peut pas dépasser 53. Chaque masque reste ainsi un entier exact en décimal, en binaire et en hexadécimal, sans arrondi.
Le bit zéro est-il le bit de poids faible ?
Oui. Le bit 0 est toujours celui de poids le plus faible, comme en C, JavaScript, Rust et dans presque tous les manuels de processeurs : les positions correspondent donc à celles de votre fiche technique.
Pourquoi l'hexadécimal n'a-t-il pas de zéros devant ?
Parce qu'il s'affiche en minuscules et sans remplissage forcé, pour que les champs courts se lisent d'un coup d'œil : quatre bits donnent 0xf, pas un long nombre plein de zéros. Le binaire n'affiche lui aussi que les bits significatifs.
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/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)Exemple de requête
{
"bits": 4
}Exemple de réponse
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "dev.bit_mask_generate",
"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
Les limites maintiennent chaque résultat dans un entier sûr afin que les clients JSON ne perdent pas de précision.
Comment construire des masques d’uns consécutifs
Cette capacité encode exactement cette identité : mask equals open parenthesis open parenthesis one left-shift bits close parenthesis minus one close parenthesis left-shift start. La réponse renvoie bits et start, expose mask_decimal comme nombre JSON, mask_binary comme chaîne préfixée 0b des seuls bits significatifs, et mask_hex comme hex minuscule préfixé 0x sans padding forcé pour garder les champs courts lisibles. lowest_bit et highest_bit nomment la plage inclusive des bits à un afin de documenter une fenêtre de registre sans recompter les uns à la main. formula reformule l’identité de décalage à côté des constantes dans la documentation générée ou les commentaires de tests unitaires.
Contrat d’entrée, limites et comportement d’erreur
L’implémentation utilise des décalages BigInt en interne pour éviter le piège des trente-deux bits signés des décalages numériques JavaScript, puis convertit en Number sûr pour le champ décimal. Envoyez un corps JSON en POST avec bits obligatoire : un entier fini de un à cinquante-trois indiquant le nombre d’uns consécutifs souhaités. start est optionnel et vaut zéro par défaut ; s’il est fourni, ce doit être un entier de zéro à cinquante-deux indiquant la position du bit le plus bas à un. Comme les nombres JSON partagent la mantisse IEEE en double précision, la contrainte start plus bits doit rester au plus cinquante-trois pour que le masque ne dépasse pas deux à la puissance cinquante-trois moins un, Number.MAX_SAFE_INTEGER. Violations, bits manquant, non-entiers, booléens et chaînes vides échouent avec invalid_input en nommant la règle, et ces échecs ne sont pas facturés. Les appels réussis renvoient toujours la même forme pure : bits et start repris, les trois bases, les indices de bits inclusifs et la chaîne formula. Exemple : bits égal à huit et start égal à zéro donne mask_decimal deux cent cinquante-cinq, mask_binary 0b11111111, mask_hex 0xff, lowest_bit zéro, highest_bit sept. Exemple : bits égal à trois et start égal à cinq donne mask_decimal deux cent vingt-quatre, binaire 0b11100000, hex 0xe0, bits cinq à sept positionnés.
Où un générateur de masque de bits crée de la valeur
Comme il s’agit de parse de niveau A, chaque appel réussi coûte le prix de base publié $0.002 sans jetons de modèle ni réseau sortant, et une entrée invalide ne consomme pas de solde. Gardez les requêtes légères, figez les trois bases dans les tests, et vous obtenez des constantes de drapeaux reproductibles pour SDK, extraits CMS et workers en bordure sans déployer votre propre bibliothèque locale de manipulation de bits.
Cas d'intégration
Enseignement des décalages et masques bit à bit
Permettez aux étudiants de vérifier ((1 << bits) - 1) << start dans des devoirs notés sans recompter les uns à la main après chaque décalage.
Questions techniques
Comment générer un masque de bits d’uns consécutifs ?
Envoyez bits (largeur, 1–53) et start optionnel (index LSB, défaut 0). L’API renvoie ((1 << bits) - 1) << start comme mask_decimal, mask_binary (0b…) et mask_hex (0x…).
Pourquoi une limite de 53 bits ?
Les nombres JSON utilisent des doubles IEEE avec une mantisse de 53 bits. Garder start + bits ≤ 53 garantit que mask_decimal est un entier sûr exact sans perte de précision.
Le bit zéro est-il le moins significatif ?
Oui. La numérotation des bits suit les conventions courantes CPU et langages : un décalage à gauche de start déplace le champ vers des bits plus significatifs.
Combien coûte le générateur de masque de bits ?
L’outil navigateur est gratuit. Les requêtes API utilisent le solde prépayé KIT à $0.002 par appel réussi ; une entrée invalide n’est pas facturée.