// Comma-kod – självavgränsande binärkoder med automatiska gränser
Inga avgränsare behövs mellan efterföljande koder.
Unärt längdprefix följt av databitar.
Tabuvarianten undviker vissa bitmönster när det behövs.
Comma-koden kodar ett heltal n genom att: 1) skriva bitlängden L-1 i unär form (L-1 ettor följt av en nolla), 2) lägga till den binära representationen utan den första ettan. Tabuvarianten ändrar kodningen för att undvika mönster som 11, vilket är användbart i vissa kommunikationskanaler.
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-kod är en självavgränsande binärkod som kodar heltal med ett unärt längdprefix följt av databitar. Den kallas "Comma" eftersom koderna kan kedjas ihop utan explicita avgränsare, ungefär som objekt i en lista.
Det unära längdprefixet talar om för avkodaren exakt hur många databitar som följer. När du ser k ettor följt av en nolla vet du att du ska läsa exakt k ytterligare bitar. Detta gör att flera koder kan kopplas ihop utan extra avgränsare.
Tabuvarianten av Comma-kod ändrar kodningen för att undvika vissa bitmönster (som 11). Den är användbar i kanaler där specifika mönster orsakar problem eller har särskild betydelse, till exempel synkroniseringsmarkörer.
Comma-koder används i datakomprimering, nätverksprotokoll och lagringssystem där självavgränsande egenskaper är viktiga. De är särskilt praktiska när man vill lagra flera heltal med variabel längd utan separata längdfält.