Calculateur de code Gray vers binaire pour codeurs
Le code Gray 0111 se décode en binaire 0101, soit 5 en décimal. Collez le mot fourni par votre codeur, avec ou sans le préfixe 0b, et obtenez le binaire sur la même largeur, avec tous ses zéros de tête. Gratuit dans votre navigateur.
- Gratuit
- Fonctionne dans votre navigateur
- Sans inscription
- Vos données restent sur votre appareil
Lancer gratuitement
Exemple résolu
- Code de Gray
- 0111
- Binaire
- 0101
- Décimal
- 5
- Largeur en bits
- 4
Un code Gray réfléchi ne change qu’un bit entre deux positions voisines, ce qui aide les codeurs rotatifs et linéaires à éviter les lectures ambiguës pendant une transition. Cette valeur est utile au niveau du capteur, mais les logiciels ont généralement besoin du binaire ordinaire. Ce calculateur inverse le codage Gray avec une chaîne XOR exacte, du bit de poids fort au bit de poids faible. Il accepte une chaîne propre, conserve les zéros initiaux et renvoie le binaire ainsi que sa valeur décimale.
Comprendre le XOR cumulatif qui inverse le code Gray réfléchi
Le code Gray réfléchi est organisé de sorte que deux positions numériques voisines diffèrent d’exactement un bit. Cette propriété réduit le risque qu’un codeur soit interprété comme une position très éloignée lorsque plusieurs bits binaires ordinaires changeraient simultanément. Le décodage commence du côté de poids fort.
Le premier bit binaire est copié directement depuis le premier bit Gray. Chaque bit binaire suivant est égal au bit binaire précédent XOR le bit Gray courant. Autrement dit, chaque position binaire représente la parité de tous les bits Gray depuis la gauche jusqu’à cette position.
Pour Gray 0111, la parité courante vaut 0, puis 1, puis 0 et enfin 1, ce qui donne le binaire 0101. Cette capacité parcourt les caractères au lieu d’utiliser les entiers bit à bit de JavaScript, limités aux opérations signées sur 32 bits. Les mots de codeur de largeur fixe et les longs exemples restent donc exacts.
Seul le code Gray binaire réfléchi standard est pris en charge ; les variantes équilibrées, n-aires ou propres à un constructeur nécessitent une table différente.
Saisir un mot du codeur et lire chaque champ de réponse
Le préfixe facultatif 0b est accepté lorsque vous copiez un littéral depuis une documentation de micrologiciel. Les zéros initiaux sont conservés : un mot de capteur sur 12 bits demeure sur 12 bits même si sa valeur est faible. Cette validation stricte empêche la suppression silencieuse d’un caractère de transformer une position physique en lecture plausible mais erronée.
Retirez donc explicitement les séparateurs présents dans la source avant l’appel.
Exploiter le résultat pour le diagnostic, les tests et les données
Pour un contrôle sur banc, collez le mot Gray de la fiche technique ou lu dans un registre, puis comparez binary à la position attendue du mécanisme. Lors de la validation d’un micrologiciel, conservez des entrées Gray connues et leurs sorties binaires comme jeux de test, puis utilisez ce service comme oracle indépendant pour une routine XOR en C, Rust, langage logique programmable ou environnement PLC. Aucun réseau, hasard, horloge ni cache avec état n’intervient, donc une même entrée produit toujours la même sortie.
La conversion ne contrôle ni le câblage, ni l’état du codeur, ni le bouclage, les engrenages ou les unités physiques. Vérifiez que le constructeur transmet d’abord le bit de poids fort et utilise bien le code Gray binaire réfléchi standard avant d’interpréter decimal comme position réelle.
Cas d’usage
Contrôle de codeurs rotatifs
Décodez un mot Gray capturé en binaire et en décimal tout en conservant sa largeur déclarée pour le comparer à la position attendue de l’axe.
Normalisation des données de capteurs
Convertissez les champs Gray archivés avant l’étalonnage ou l’analyse, en gardant le code source normalisé et la méthode de conversion.
Questions fréquentes
Comment convertir un code Gray réfléchi en binaire ?
Copiez le bit Gray de poids fort, puis appliquez XOR entre chaque bit Gray suivant et le bit binaire précédent ; cela revient à calculer un XOR courant de gauche à droite.
Puis-je inclure le préfixe 0b ?
Oui. Un préfixe 0b ou 0B est retiré avant la conversion. Les autres signes, séparateurs et espaces internes sont refusés.
Tous les types de code Gray sont-ils acceptés ?
Non. L’outil décode le code Gray binaire réfléchi standard ; les tables constructeur, codes équilibrés et variantes non binaires sont hors périmètre.
Quel est le prix du calculateur ?
Le calculateur du navigateur fonctionne gratuitement sur votre appareil.
Puis-je coller un code Gray avec des espaces ou des séparateurs ?
Non. Le mot ne peut contenir que des zéros et des uns, avec un préfixe 0b facultatif. Retirez vous-même les espaces ou séparateurs avant : supprimer un caractère en silence pourrait transformer une vraie position du codeur en lecture plausible mais fausse.
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/gray-to-binary \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"gray_code":"0111"}'const res = await fetch("https://api.kit.forhosting.com/elec/gray-to-binary", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"gray_code": "0111"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/elec/gray-to-binary",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"gray_code": "0111"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/elec/gray-to-binary", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"gray_code":"0111"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"gray_code":"0111"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/elec/gray-to-binary", 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
{
"gray_code": "0111"
}Exemple de réponse
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "elec.gray_to_binary",
"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.
Limites
max_bits | 4096 |
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
Le calcul dans le navigateur est gratuit ; le même contrat d’API déterministe coûte $0.002 par élément réussi.
Comprendre le XOR cumulatif qui inverse le code Gray réfléchi
Le champ method indique cumulative_xor afin que les traitements automatisés puissent consigner la convention utilisée.
Saisir un mot du codeur et lire chaque champ de réponse
Fournissez gray_code sous forme de chaîne commençant par le bit de poids fort et composée uniquement de zéros et de uns. Les alias gray, value et bits sont également reconnus, mais gray_code reste le nom canonique le plus clair. La réponse répète gray_code normalisé, place la représentation standard dans binary, fournit decimal comme nombre JSON sûr lorsque cela est possible et emploie une chaîne décimale au-delà de la plage entière exacte de JavaScript. bit_width donne le nombre de bits réel sans le préfixe, tandis que method vaut toujours cumulative_xor. Une entrée vide, des espaces internes, des signes, des chiffres autres que zéro ou un et une chaîne dépassant la limite publiée de 4096 bits provoquent invalid_input.
Exploiter le résultat pour le diagnostic, les tests et les données
Un pipeline peut décoder des mots de capteur archivés avant de les joindre aux tables d’étalonnage, tout en conservant gray_code et bit_width comme métadonnées traçables. Chaque élément d’API réussi coûte $0.002 ; le navigateur effectue gratuitement le calcul local.
Cas d'intégration
Tests de régression du micrologiciel
Créez des références stables pour tester des routines XOR embarquées sans dépendre du comportement bit à bit sur 32 bits du langage hôte.
Questions techniques
Les zéros initiaux sont-ils conservés ?
Oui. gray_code et binary gardent la largeur d’origine, également indiquée explicitement par bit_width.