// Comma-Code – selbstbegrenzende binäre Codes mit automatischen Grenzen
Keine Trennzeichen zwischen aufeinanderfolgenden Codes erforderlich.
Unäres Längenpräfix gefolgt von den Datenbits.
Die Tabu-Variante vermeidet bestimmte Bitmuster nach Bedarf.
Comma-Code kodiert eine ganze Zahl n, indem: 1) die Bitlänge L-1 in unärer Form geschrieben wird (L-1 Einsen gefolgt von einer Null) und 2) die binäre Darstellung ohne führende 1 angehängt wird. Die Tabu-Variante verändert die Kodierung, um Muster wie 11 zu vermeiden, was in bestimmten Kommunikationskanälen nützlich ist.
Basic Comma Code: 0 → 0 (special case) 1 → 01 (0 ones + 0 + empty) 2 → 100 (1 one + 0 + '0') 3 → 101 (1 one + 0 + '1') 4 → 11000 (2 ones + 0 + '00') 5 → 11001 (2 ones + 0 + '01') Concatenated: 1,2,3 → 01 100 101 → 01100101 Self-delimiting - can decode without separators Taboo variant avoids '11' pattern: Uses different encoding to prevent consecutive 1s
Comma-Code ist ein selbstbegrenzender binärer Code, der ganze Zahlen mit einem unären Längenpräfix und anschließenden Datenbits kodiert. Er heißt „Comma“, weil Codes wie Listenelemente hintereinander geschrieben werden können, ohne explizite Trennzeichen.
Das unäre Längenpräfix sagt dem Decoder genau, wie viele Datenbits folgen. Wenn du k Einsen gefolgt von einer Null siehst, weißt du, dass genau k weitere Bits gelesen werden müssen. So können mehrere Codes ohne zusätzliche Trennzeichen verkettet werden.
Der Tabu-Comma-Code passt die Kodierung so an, dass bestimmte Bitmuster (wie 11) vermieden werden. Das ist nützlich in Kanälen, in denen bestimmte Muster Probleme verursachen oder spezielle Bedeutung haben, etwa Synchronisationsmarken.
Comma-Codes werden in Datenkompression, Netzwerkprotokollen und Speichersystemen verwendet, in denen selbstbegrenzende Eigenschaften wichtig sind. Sie sind besonders hilfreich, wenn mehrere ganzzahlige Werte variabler Länge ohne separate Längenfelder gespeichert werden sollen.