// Comma-code – zelfbegrenzende binaire codes met automatische grenzen
Er zijn geen scheidingstekens nodig tussen opeenvolgende codes.
Unair lengtevoorvoegsel gevolgd door databits.
De taboevariant vermijdt bepaalde bitpatronen wanneer dat nodig is.
Comma-code codeert een geheel getal n als volgt: 1) schrijf de bitlengte L-1 in unair (L-1 enen gevolgd door een nul), 2) voeg de binaire representatie zonder de eerste 1 toe. De taboevariant past de codering aan om patronen zoals 11 te vermijden, wat nuttig is in bepaalde communicatiesystemen.
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 is een zelfbegrenzende binaire code die gehele getallen encodeert met een unair lengtevoorvoegsel gevolgd door databits. Hij heet "Comma" omdat codes, net als lijstitems, achter elkaar gezet kunnen worden zonder expliciete scheidingstekens.
Het unair lengtevoorvoegsel vertelt de decoder precies hoeveel databits volgen. Zodra je k enen ziet gevolgd door een nul, weet je dat je precies k extra bits moet lezen. Daardoor kunnen meerdere codes zonder extra scheidingstekens worden aaneengeschakeld.
De taboevariant van Comma-code wijzigt de codering om bepaalde bitpatronen (zoals 11) te vermijden. Dit is nuttig in kanalen waar specifieke patronen problemen veroorzaken of een speciale betekenis hebben, bijvoorbeeld synchronisatiemarkeringen.
Comma-codes worden gebruikt bij gegevenscompressie, netwerkprotocollen en opslagsystemen waar zelfbegrenzende eigenschappen belangrijk zijn. Ze zijn vooral handig wanneer meerdere variabele-lengte-gehele getallen zonder aparte lengtevakken moeten worden opgeslagen.