Johnson-Zähler Zustände
Vier Flipflops als Johnson-Zähler ergeben 8 eindeutige Zustände, doppelt so viele wie Stufen. Geben Sie die Stufenzahl ein und erhalten Sie diesen Wert, den eines einfachen Ringzählers und bis 53 Stufen den eines Binärzählers zum Vergleich. 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
- Stufen
- 4
- Eindeutige Zustände
- 8
- Zustände des Ringzählers
- 4
- Betrag
- 8
- Zustände des Binärzählers
- 16
Ein Johnson-Zähler, auch verdrehter Ringzähler oder Möbius-Zähler genannt, ist eine sequenzielle Schaltung im Stil eines Schieberegisters, bei der der invertierte Ausgang des letzten Flipflops die erste Stufe speist. Im Gegensatz zu einem freien Binärzähler, der mit n Flipflops 2 hoch n Codes besuchen kann, oder zu einem einfachen Ringzähler, der nur n One-Hot-Muster durchläuft, wandert die Johnson-Topologie systematisch durch genau 2n verschiedene Zustände, bevor sie sich wiederholt. Digitaldesigner, Studierende und FPGA-Programmierer brauchen diese 2n-Zahl sofort, wenn sie einen Modul wählen, einen Decoder auswählen oder Zählerstile im Datenblatt vergleichen. Dieser Rechner nimmt die Anzahl der Flipflop-Stufen entgegen und liefert die Anzahl eindeutiger Zustände mit der Lehrbuchformel, plus den einfachen Ringzähler-Vergleich und—sofern exakt—die Binärzählergröße für dieselbe Stufenzahl.
Was ein verdrehter Johnson-Ringzähler ist und warum er 2n Zustände hat
Beginnen Sie mit n D-Flipflops als Schieberegister: an jeder Taktflanke wandert das Bit der Stufe i in die Stufe i plus eins. Bei einem einfachen Ringzähler kehrt der nicht invertierte Ausgang der letzten Stufe an den Eingang der ersten zurück, sodass ein zirkulierendes Eins (oder Null) einen Zyklus der Länge n erzeugt—die klassische One-Hot- oder One-Cold-Sequenz. Ein Johnson-Zähler verdreht diese Rückkopplung: das Komplement der letzten Stufe treibt die erste.
Diese Invertierung verdoppelt den Weg im Zustandsgraphen. Aus einem gelöschten Reset durchläuft die Maschine n steigende Muster, die Einsen von einem Ende her füllen, dann n fallende Muster, die sie löschen—eine geschlossene Bahn der Länge 2n ohne ungültige Zwischenkodes bei legalem Startzustand. Jeder legale Kode ist ein zusammenhängender Block aus Einsen gefolgt von Nullen oder Nullen gefolgt von Einsen, betrachtet als zirkulare Verschiebung der verdrehten Kette—für Breite n existieren genau 2n solcher Strings.
Deshalb ist die Anzahl eindeutiger Zustände eines Johnson-Zählers stets das Doppelte der Stufenzahl, unabhängig von Taktrate oder Technologieknoten. Entwickler nutzen diesen Modul 2n für Divide-by-2n-Takte, Dekaden- oder Mehrphasengeneratoren mit n gleich fünf (zehn Zustände) und sequenzielle Steuerungen mit geringem Logikaufwand, die mit wenigen Zwei-Eingangs-Gattern statt eines vollen binären Decoderbaums dekodieren.
Wo die Zustandszahl in der Praxis hilft
Vorlesungsnotizen und Laborhandbücher fragen nach der Anzahl eindeutiger Zustände eines vier- oder fünfbitigen Johnson-Zählers; Tutoren brauchen ein deterministisches Orakel, das stets 2n antwortet, statt Ring-, Johnson- und Binärzahlen zu vermengen. Prüfungsgeneratoren und LMS-Plugins rufen einen kleinen Parse-Endpunkt auf, um Freitextaufgaben zu bewerten, ohne Schaltungssimulatoren einzubetten. FPGA- und ASIC-Architekten skizzieren Module—acht, zehn, zwölf, sechzehn—bevor sie LUTs oder Standardzellen binden; ein Ein-Feld-Rechner ist schneller als ein HDL-Testbench nur für eine Zähltheorie-Prüfung.
Fehlgeschlagene Validierung wird nicht abgerechnet.
Anwendungsfälle
Unterrichts- und Laborkontrollen
Studierende geben die Flipflop-Stufenzahl n ein und prüfen, dass ein verdrehter Johnson-Ringzähler genau 2n eindeutige Zustände hat, bevor sie mit Ring- (n) und Binärzählern (2^n) vergleichen.
Automatische Prüfungs- und LMS-Bewertung
Bewerten Sie Fragen zur digitalen Logik zum Johnson-Zähler-Modul mit einem deterministischen 2n-Orakel statt einer vollständigen Flipflop-Simulation.
FPGA-Dimensionierung und Sequenzentwurf
Wählen Sie n so, dass 2n dem geforderten Teilerverhältnis oder der Mehrphasenschrittzahl entspricht, bevor Sie HDL für die Schiebekette und den Decoder schreiben.
Häufige Fragen
Wie viele eindeutige Zustände hat ein Johnson-Zähler?
Ein Johnson-Zähler (verdrehter Ring) mit n Flipflop-Stufen hat genau 2n eindeutige Zustände.
Wie unterscheidet sich ein Johnson-Zähler von einem Ringzähler?
Ein einfacher Ringzähler speist die letzte Stufe nicht invertiert zurück und hat n eindeutige Zustände. Ein Johnson-Zähler invertiert diese Rückkopplung und hat 2n eindeutige Zustände.
Wie viele Flipflops brauche ich für einen Johnson-Zähler, der durch 10 teilt?
Fünf. Ein Johnson-Zähler mit 5 Stufen durchläuft 10 Zustände, bevor er sich wiederholt; das ist die übliche Dekadenanordnung in Dekadenzählern und Mehrphasen-Signalgeneratoren.
Welche Folge durchläuft ein Johnson-Zähler?
Nach einem Rücksetzen füllt er sich von einem Ende her mit Einsen, eine Stufe pro Takt, und leert sich danach auf dieselbe Weise. So entstehen n steigende und n fallende Muster, und jeder gültige Code ist ein Block Einsen neben einem Block Nullen.
Warum lässt sich ein Johnson-Zähler leicht dekodieren?
Weil die Zustände diesem einfachen Blockmuster folgen, erkennen Sie jeden mit wenigen Gattern mit zwei Eingängen statt mit einem vollständigen Binärdekoder. Das hält den Logikaufwand in Ablaufsteuerungen und Taktteilern durch 2n gering.
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/elec/johnson-counter \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"stages":4}'const res = await fetch("https://api.kit.forhosting.com/elec/johnson-counter", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"stages": 4
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/elec/johnson-counter",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"stages": 4
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/elec/johnson-counter", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"stages":4}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"stages":4}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/elec/johnson-counter", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Beispiel-Anfrage
{
"stages": 4
}Beispiel-Antwort
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "elec.johnson_counter",
"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.
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
Eingangsvertrag, Antwortfelder und Validierungsregeln
Beispiel: stages gleich vier ergibt acht eindeutige Johnson-Zustände, vier Ringzustände und sechzehn Binärzustände. Beispiel: stages gleich fünf ergibt zehn eindeutige Zustände—die übliche Dekaden-Johnson-Anordnung in Dekadenzählern und Mehrphasen-Wellengeneratoren. Senden Sie einen JSON-Body mit einem Pflichtfeld: stages, eine positive ganze Zahl n von eins bis zehntausend. Numerische Zeichenketten werden akzeptiert; die Aliase n, flip_flops, flipflops, stages_n, ff und count zeigen auf denselben Parameter, damit SDK-Clients und Formular-Widgets flexibel bleiben. Fehlendes stages, nicht endliche Werte, Nicht-Ganzzahlen, null, Negative und Werte über der Obergrenze scheitern mit invalid_input und werden nicht abgerechnet. Bei Erfolg wiederholt der Body stages, meldet unique_states als das Doppelte von stages, ring_counter_states als stages für den nicht verdrehten Vergleich und modulus gleich unique_states, sodass die Sprache des Frequenzteilers nur ein Feld entfernt liegt. Die Formelzeichenkette bekräftigt unique_states gleich zwei mal stages zur Anzeige neben der Zahl. Wenn stages höchstens dreiundfünfzig ist, wird auch binary_counter_states als zwei hoch stages zurückgegeben, damit Sie die lineare Johnson-Kapazität mit der exponentiellen Binärkapazität über exakte IEEE-Ganzzahlen vergleichen können; bei größerem n entfällt dieses Vergleichsfeld statt gerundet oder null zu sein—gemäß der Plattformregel, dass optionale Ausgaben verschwinden statt null zu tragen.
Wo eine API für Johnson-Zählerzustände ihren Nutzen zeigt
Da die Implementierung reines Parse der Stufe A ist, kostet jeder erfolgreiche Aufruf den veröffentlichten Basispreis $0.002 ohne Modell-Tokens und ohne ausgehendes Netzwerk. Halten Sie stages klein und ganzzahlig, pinnen Sie unique_states in Tests, und Sie erhalten reproduzierbare Antworten für Hausaufgaben, Datenblatt-Tabellen und Edge-Worker, ohne einen eigenen sequenziellen Logiksimulator aufzustellen.
Technische Fragen
Welche Eingabe verlangt der Rechner?
Eine positive ganze Zahl stages von 1 bis 10000 (Aliase: n, flip_flops, flipflops, stages_n, ff, count). Nicht-Ganzzahlen, null, Negative oder fehlende Werte liefern invalid_input.
Warum fehlt binary_counter_states manchmal?
Es wird nur einbezogen, wenn stages ≤ 53, damit 2^stages eine exakte sichere Ganzzahl ist. Bei größerem n entfällt das optionale Feld statt approximiert oder null zu sein.
Was kostet der Johnson-Zähler-Zustandsrechner?
Das Browser-Tool ist kostenlos. API-Anfragen nutzen vorausbezahltes KIT-Guthaben zu $0.002 pro erfolgreichem Aufruf; ungültige Eingaben werden nicht berechnet.