Gray-Code-Dekodierer
Geben Sie einen Gray-Code-Wert ein und erhalten Sie die Zahl dahinter: 0111 ergibt binär 0101, also 5. Führende Nullen bleiben erhalten, sodass sich Messwerte fester Breite eines Drehgebers leicht vergleichen lassen. Kostenlos in Ihrem Browser.
- Kostenlos
- Läuft in Ihrem Browser
- Ohne Anmeldung
- Ihre Daten bleiben auf Ihrem Gerät
Im Browser ausführen – kostenlos
Rechenbeispiel
- Text
- 0111
- Gray-Code
- 0111
- Binär
- 0101
- Ganzzahl
- 5
Ein Gray-Code-Dekodierer wandelt ein reflektiertes binäres Gray-Code-Wort in die gewöhnliche nichtnegative Ganzzahl um, die es darstellt. Dieses Werkzeug nimmt eine ausschließlich aus Nullen und Einsen bestehende Bitfolge entgegen, rekonstruiert ihre Standardbinärform und liefert die exakte Ganzzahl zusammen mit beiden Bitfolgen zur einfachen Kontrolle. Damit können Sie Positionen von Drehgebern lesen, Aufgaben zur Digitallogik prüfen, Firmwaretabellen testen oder untersuchen, wie Gray-Übergänge mit nur einem wechselnden Bit wieder auf normales Zählen abgebildet werden.
Was ein Gray-Code-Dekodierer berechnet
Der reflektierte binäre Gray-Code kennzeichnet aufeinanderfolgende nichtnegative Ganzzahlen so, dass sich benachbarte Werte in genau einem Bit unterscheiden. Dieser einzelne Bitwechsel ist bei Geräten nützlich, in denen mehrere elektrische Signale nicht garantiert exakt gleichzeitig umschalten. Ein Gray-Wort lässt sich deshalb nicht unmittelbar mit den Stellenwerten einer normalen Binärzahl auswerten.
Zum Dekodieren wird das höchstwertige Gray-Bit als erstes Binärbit übernommen. Jedes weitere Binärbit entsteht durch exklusives ODER aus dem zuvor dekodierten Binärbit und dem aktuellen Gray-Bit. Gleichbedeutend gibt jede Binärposition die Parität des bis dorthin reichenden Gray-Präfixes an.
Diese Fähigkeit führt das kumulative XOR von links nach rechts aus, baut die normale Binärfolge auf und wertet sie anschließend als nichtnegative Ganzzahl aus. So wird Gray-Code 0111 zu Binär 0101 und damit zur Ganzzahl 5. Führende Nullen bleiben in beiden ausgegebenen Bitfolgen erhalten, sodass Sie Hardwaremesswerte mit fester Breite leicht vergleichen können.
Implementiert ist die in Gebern und Digitallogik übliche binär reflektierte Variante.
Gültige Eingabe und exakte Ausgabe
Senden Sie das Gray-Wort im Feld text als nichtleere Zeichenfolge, die ausschließlich 0 und 1 enthält. Leerzeichen, Trennzeichen, das Präfix 0b, andere Dezimalziffern, Vorzeichen und erklärender Text sind bewusst nicht erlaubt. Die strenge Prüfung verhindert, dass ein versehentliches Zeichen unbemerkt eine Hardwareposition verändert.
Der aktuelle Vertrag akzeptiert bis zu 53 Bits, damit die ausgegebene Ganzzahl exakt bleibt. Gray 0 ergibt Binär 0 und Ganzzahl 0; Gray 1 ergibt Binär 1 und Ganzzahl 1. Gleiche Eingaben erzeugen stets gleiche Objekte, da weder Netzwerk noch Zufall, gespeicherter Zustand oder Uhrzeit verwendet werden.
Einsatz bei Hardware, Unterricht und Tests
Verwenden Sie das Browserformular, wenn Sie einen Gray-Messwert schnell untersuchen, kumulatives XOR im Unterricht veranschaulichen oder eine Handrechnung ohne Wegwerfprogramm kontrollieren möchten. Bewahren Sie bei Dreh- und Lineargebern den ursprünglichen Messwert mit fester Breite auf und vergleichen Sie das Feld binary mit der dokumentierten Bitreihenfolge des Geräts, denn die Folge wird mit dem höchstwertigen Bit zuerst interpretiert. Prüfen Sie in automatisierten Tests alle drei Antwortfelder, wenn die Breite wichtig ist, oder nur integer, wenn allein die Position zählt.
Sinnvolle Grenzfälle sind ausschließlich Nullen, eine einzelne Eins, führende Nullen, der größte erwartete Gerätewert und fehlerhafte Folgen. Der Dekodierer korrigiert keine vertauschte Verdrahtung, errät keine Bitreihenfolge und entfernt keine Präfixe. Sein enger Vertrag ist beabsichtigt: binäre Gray-Wörter prüfen, exakt dekodieren und browser-, server- sowie CI-übergreifend stabile Ergebnisse liefern.
Anwendungsfälle
Geberposition dekodieren
Wandeln Sie den Gray-Messwert fester Breite eines Dreh- oder Lineargebers in die von Ihrer Anwendungslogik verwendete nichtnegative Position um.
Aufgaben zur Digitallogik prüfen
Zeigen Sie das rekonstruierte Binärwort und die Ganzzahl an, um jeden Schritt einer Dekodierung mit kumulativem XOR nachzuvollziehen.
Häufige Fragen
Welche Art von Gray-Code wird dekodiert?
Dekodiert wird der normale reflektierte binäre Gray-Code durch kumulatives XOR vom höchstwertigen bis zum niedrigstwertigen Bit.
Welche Eingabe wird akzeptiert?
Leerzeichen, Präfixe, Vorzeichen und andere Ziffern sind ungültig.
Warum ist die Eingabe auf 53 Bits begrenzt?
Breitere Eingaben können den sicheren Zahlenbereich überschreiten und werden statt einer stillen Rundung abgewiesen.
Wie wandle ich Gray-Code von Hand in Binär um?
Übernehmen Sie das erste Bit unverändert. Vergleichen Sie danach jedes Gray-Bit mit dem zuletzt geschriebenen Binärbit: Schreiben Sie 1, wenn sie verschieden sind, und 0, wenn sie gleich sind. So wird 0111 zu 0101.
Warum verwenden Drehgeber Gray-Code?
Weil sich benachbarte Positionen in genau einem Bit unterscheiden. Das zählt bei Geräten, in denen mehrere elektrische Signale nicht garantiert im selben Augenblick umschalten. Die Dekodierung macht aus jedem Messwert wieder eine gewöhnliche Positionszahl.
Verwandte Tools
Für Entwickler — API-Zugang
Alles auf dieser Seite ist auch per API verfügbar. Dieser Abschnitt richtet sich an Teams, die es in ihre eigenen Systeme einbinden möchten; alle anderen nutzen einfach das Tool oben.
Endpunkt
Authentifizierung per Bearer-Token. Ein einziger POST stellt die Aufgabe in die Warteschlange; das Ergebnis erhalten Sie per Webhook oder über einen signierten Link.
Aufruf aus Ihrem 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)Beispiel-Anfrage
{
"text": "0111"
}Beispiel-Antwort
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "numth.gray_code_decode",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}Die API arbeitet asynchron: Sie erhalten sofort eine task_id. Polling ist mit 1 Anfrage pro Sekunde erlaubt.
Preis
Der Preis steht auf der Seite – keine Tokens, keine Credits. Fehlgeschlagene Aufgaben werden nicht berechnet.
Limits
max_chars | 53 |
Fehler
| HTTP | Code | Bedeutung |
|---|---|---|
401 | unauthorized | Der API-Schlüssel fehlt oder ist ungültig – prüfen Sie den Authorization-Header (Bearer). |
402 | insufficient_balance | Ihr Guthaben reicht für diese Aufgabe nicht aus – Aufladungen verfallen nicht. |
404 | unknown_type | Unbekannter Aufgabentyp – prüfen Sie das Feld „type“ gegen den Katalog. |
429 | rate_limited | Zu viele Anfragen – warten Sie kurz; Polling ist mit 1 Anfrage pro Sekunde erlaubt. |
Technische Hinweise
Ungültige Zeichen werden eindeutig abgewiesen, und jede gültige Anfrage verwendet im Browser und über die API denselben deterministischen Algorithmus.
Gültige Eingabe und exakte Ausgabe
Die Aliase gray, gray_code und bits werden ebenfalls akzeptiert, falls Ihr Client bereits einen dieser Feldnamen verwendet. JavaScript- und JSON-Zahlen können Ganzzahlen nur innerhalb ihres sicheren Bereichs präzise darstellen; ein größeres Ergebnis wird daher abgewiesen und nicht gerundet. Eine erfolgreiche Antwort enthält gray_code mit der eingereichten Breite, binary mit dem rekonstruierten gewöhnlichen Binärwort und integer mit der nichtnegativen JSON-Zahl. Ungültige Eingaben führen zu invalid_input ohne irreführendes Teilergebnis.
Einsatz bei Hardware, Unterricht und Tests
Nutzen Sie die API, wenn Firmwarewerkzeuge, Prüfstände, Lernplattformen oder Importdienste denselben stabilen Vorgang wiederholt benötigen. Jedes erfolgreiche API-Element kostet $0.002; die Browserausführung eignet sich für interaktive Kontrollen.
Integrationsbeispiele
Deterministische Test-Fixtures erstellen
Erzeugen Sie stabile Gray-zu-Ganzzahl-Ergebnisse für Firmwaretabellen, Simulatoren, Geräteparser und Assertions der kontinuierlichen Integration.
Technische Fragen
Bleiben führende Nullen erhalten?
Ja. Die Felder gray_code und binary behalten die eingereichte Bitbreite bei, während integer den zugehörigen Zahlenwert liefert.
Was kostet die API?
Jedes erfolgreiche API-Element kostet $0.002. Für schnelle Kontrollen steht die interaktive Ausführung im Browser bereit.