Decodificatore codice Gray
Incolli una lettura in codice Gray e ottenga il numero che rappresenta: 0111 diventa il binario 0101, cioè 5. Gli zeri iniziali restano al loro posto, così le letture a larghezza fissa di un encoder si confrontano facilmente. Gratis nel suo browser.
- Gratis
- Funziona nel suo browser
- Senza registrazione
- I suoi dati restano sul dispositivo
Esegui gratis nel browser
Esempio risolto
- Testo
- 0111
- Codice Gray
- 0111
- Binario
- 0101
- Intero
- 5
Un decodificatore di codice Gray trasforma una parola Gray binaria riflessa nell’intero non negativo ordinario che rappresenta. Questo strumento accetta una stringa composta soltanto da zeri e uno, ricostruisce la forma binaria standard e restituisce l’intero esatto insieme alle due stringhe per agevolare il controllo. È utile quando Lei legge posizioni di encoder rotativi, verifica esercizi di logica digitale, collauda tabelle firmware o studia come le transizioni Gray a un bit ritornano al conteggio normale.
Che cosa calcola un decodificatore di codice Gray
Il codice Gray binario riflesso etichetta interi non negativi consecutivi in modo che due valori adiacenti differiscano esattamente per un bit. Questa singola transizione è preziosa nei dispositivi in cui più segnali elettrici non possono cambiare nello stesso preciso istante. Una parola Gray non viene quindi interpretata direttamente con i pesi posizionali del binario ordinario.
Per decodificarla, il bit Gray più significativo viene copiato come primo bit binario. Ogni bit binario successivo è l’OR esclusivo tra il bit binario già decodificato e il bit Gray corrente. In termini equivalenti, ogni posizione binaria esprime la parità del prefisso Gray che termina in quel punto.
La capacità applica questo XOR cumulativo da sinistra a destra, costruisce la stringa binaria standard e poi la valuta come intero non negativo. Per esempio, il codice Gray 0111 diventa il binario 0101 e quindi l’intero 5. Gli zeri iniziali restano nelle stringhe restituite, facilitando il confronto di letture hardware a larghezza fissa.
L’implementazione copre la variante binaria riflessa comunemente usata negli encoder e nella logica digitale.
Ingresso valido e risultato esatto
Invii la parola Gray nel campo text come stringa non vuota contenente soltanto 0 e 1. Spazi, separatori, prefisso 0b, altre cifre decimali, segni e testo esplicativo vengono deliberatamente rifiutati. La validazione rigorosa impedisce che un carattere accidentale modifichi silenziosamente una posizione hardware.
Il contratto attuale accetta fino a 53 bit per produrre un intero esatto. Gray 0 restituisce binario 0 e intero 0; Gray 1 restituisce binario 1 e intero 1. Ingressi uguali producono sempre oggetti uguali, senza rete, casualità, stato memorizzato od orologio.
Uso con hardware, didattica e test
Usi il modulo nel browser quando desidera esaminare rapidamente una lettura Gray, illustrare lo XOR cumulativo durante una lezione o controllare un calcolo manuale senza scrivere un programma usa e getta. Per encoder rotativi o lineari, conservi la lettura originale a larghezza fissa e confronti il campo binary con l’ordine dei bit documentato dal dispositivo, poiché la stringa viene interpretata dal bit più significativo. Nei test automatici verifichi tutti e tre i campi quando conta la larghezza, oppure soltanto integer quando interessa la posizione.
Includa casi con tutti zeri, un solo uno, zeri iniziali, il massimo valore previsto e stringhe malformate. Il decodificatore non corregge cablaggi invertiti, non deduce l’ordine, non rimuove prefissi e non indovina se una stringa sia Gray o binaria ordinaria. Il contratto è volutamente preciso: validare, decodificare esattamente e fornire un risultato stabile nel browser, sul server e nell’integrazione continua.
Casi d'uso
Decodificare la posizione di un encoder
Converta una lettura Gray a larghezza fissa di un encoder rotativo o lineare nella posizione non negativa usata dalla Sua logica applicativa.
Verificare esercizi di logica digitale
Visualizzi la parola binaria ricostruita e l’intero per controllare ogni fase del calcolo di decodifica tramite XOR cumulativo.
Domande frequenti
Quale tipo di codice Gray viene decodificato?
Viene decodificato il codice Gray binario riflesso standard mediante XOR cumulativo, dal bit più significativo a quello meno significativo.
Quale ingresso viene accettato?
Spazi, prefissi, segni e altre cifre non sono validi.
Perché l’ingresso è limitato a 53 bit?
Un ingresso più ampio può superare l’intervallo sicuro e viene rifiutato per evitare arrotondamenti invisibili.
Come si converte a mano il codice Gray in binario?
Copi il primo bit così com’è. Per ogni bit successivo, confronti il bit Gray con l’ultimo bit binario scritto: scriva 1 se sono diversi e 0 se coincidono. Così 0111 diventa 0101.
Perché gli encoder rotativi usano il codice Gray?
Perché due posizioni vicine differiscono di un solo bit, cosa importante nei dispositivi in cui più segnali elettrici non cambiano per forza nello stesso istante. La decodifica riporta ogni lettura a una normale posizione numerica.
Strumenti correlati
Per sviluppatori — accesso via API
Tutto quello che vedi in questa pagina è disponibile anche via API. Questa sezione è per i team che vogliono integrarlo nei propri sistemi; chi non ne ha bisogno può semplicemente usare lo strumento qui sopra.
Endpoint
Autenticazione con Bearer token: un POST mette in coda l'attività e il risultato arriva via webhook o link firmato.
Chiamala dal tuo stack
curl -X POST https://api.kit.forhosting.com/numth/gray-code-decode \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"0111"}'const res = await fetch("https://api.kit.forhosting.com/numth/gray-code-decode", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "0111"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/numth/gray-code-decode",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "0111"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/numth/gray-code-decode", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"0111"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"0111"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/numth/gray-code-decode", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Esempio di richiesta
{
"text": "0111"
}Esempio di risposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "numth.gray_code_decode",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}L'API è asincrona: ricevi subito un task_id e puoi fare polling fino a 1 richiesta al secondo.
Prezzi
Prezzo pubblicato, senza token né crediti. Se l'attività fallisce, non paghi.
Limiti
max_chars | 53 |
Errori
| HTTP | Codice | Significato |
|---|---|---|
401 | unauthorized | Chiave API mancante o non valida: controlla l'header Authorization. |
402 | insufficient_balance | Credito esaurito: ricarica per continuare a eseguire attività. |
404 | unknown_type | Tipo di attività sconosciuto: controlla il campo type della richiesta. |
429 | rate_limited | Troppe richieste in poco tempo: rallenta e riprova tra qualche secondo. |
Note tecniche
I caratteri non validi vengono respinti chiaramente e ogni richiesta valida usa lo stesso algoritmo deterministico nel browser e nell’API.
Ingresso valido e risultato esatto
Sono accettati anche gli alias gray, gray_code e bits se il Suo client utilizza già uno di questi nomi. I numeri JavaScript e JSON rappresentano con precisione gli interi solo nel loro intervallo sicuro; un risultato superiore viene quindi respinto anziché arrotondato. Una risposta corretta contiene gray_code con la larghezza inviata, binary con la parola binaria ricostruita e integer con il numero JSON non negativo. Un ingresso errato genera invalid_input senza risultati parziali fuorvianti.
Uso con hardware, didattica e test
Usi l’API quando strumenti firmware, banchi di prova, piattaforme didattiche o servizi di importazione devono ripetere la stessa operazione stabile. Ogni elemento API riuscito costa $0.002; l’esecuzione nel browser è adatta ai controlli interattivi.
Casi di integrazione
Creare fixture di test deterministiche
Generi risultati stabili da Gray a intero per tabelle firmware, simulatori, parser di dispositivi e asserzioni di integrazione continua.
Domande tecniche
Gli zeri iniziali vengono conservati?
Sì. I campi gray_code e binary mantengono la larghezza inviata, mentre integer restituisce il valore numerico corrispondente.
Quanto costa l’API?
Ogni elemento API riuscito costa $0.002. L’esecuzione interattiva nel browser è disponibile per controlli rapidi.