Elke vorm van data wordt in computers en bij telecommunicatie voorgesteld als een bitstring: een reeks opeenvolgende bits. Daarbij is een bit de kleinste eenheid van data, die twee waarden kan aannemen: 0 of 1.
Een communicatieprotocol zal bitstrings niet in één keer over een netwerk verzenden, maar verstuurt kleinere pakketten met vaste lengte $$w$$, typisch 8-bits octetten (bytes; $$w = 8$$). Bovendien wordt aan elk pakket voor verzending een extra pariteitsbit toegevoegd: een eenvoudige manier om bij ontvangst fouten op te sporen als pakketten tijdens het verzenden gewijzigd werden. De pariteitsbit zorgt dat het aantal 1-bits in een pakket altijd even of oneven is. Er zijn dus twee varianten van pariteitsbits: even pariteit en oneven pariteit.
Stel dat we de bitstring 010000111010110011100110101101111000010000 (42 bits) willen verzenden met een communicatieprotocol dat pakketten van lengte $$w = 8$$ gebruikt. Eerst wordt de bitstring opgedeeld in pakketten van $$w - 1 = 7$$ bits. Daarna wordt voor elk pakket een pariteitsbit berekend, dat achteraan het pakket toegevoegd wordt (aangeduid in het groen).
Als het communicatieprotocol even pariteit gebruikt dan wordt de pariteitsbit op 1 gezet als het aantal enen van een pakket (zonder pariteitsbit) oneven is, waardoor het totaal aantal enen van het volledige pakket (inclusief de pariteitsbit) even is. Als het aantal enen van een pakket (zonder pariteitsbit) al even was, dan wordt de pariteitsbit op 0 gezet.
In het geval van oneven pariteit gebeurt de codering omgekeerd. Als het aantal enen in een pakket met $$w - 1$$ bits even is dan wordt de pariteitsbit op 1 gezet, waardoor het totaal aantal enen van het volledige pakket (inclusief de pariteitsbit) oneven is. Als het aantal enen van een pakket (zonder pariteitsbit) al oneven was, dan wordt de pariteitsbit op 0 gezet.
Bij ontvangst van een bitstring controleert het communicatieprotocol eerst de pariteit voor elk pakket van lengte $$w$$. Bij even pariteit moet het aantal enen in elk pakket (inclusief de pariteitsbit) even zijn.
Bij oneven pariteit moet het aantal enen in elk pakket (inclusief de pariteitsbit) oneven zijn.
Als blijkt dat de ontvangen bitstring geldig is, verwijdert het communicatieprotocol alle pariteitsbits. Zo krijgen we terug de oorspronkelijke bitstring van voor er bij verzending pariteitsbits werden aan toegevoegd.
Vier regels die respectievelijk de volgende informatie bevatten voor een bitstring die moet verzonden worden of die ontvangen werd door een communicatieprotocol:
de bitstring
de lengte $$w$$ van de pakketten waarmee het protocol werkt
even als het protocol even pariteit gebruikt of oneven als het oneven pariteit gebruikt
verzenden als de bitstring moet verzonden worden of ontvangen als de bitstring ontvangen werd
Als de bitstring door het communicatieprotocol moet verzonden worden, dan moet de lengte van de bitstring een veelvoud zijn van $$w - 1$$. Als dat niet het geval is, dan moet ongeldige bitstring uitgeschreven worden. Anders moet de bitstring uitgeschreven worden waaraan het protocol de pariteitsbits heeft toegevoegd.
Als de bitstring door het communicatieprotocol ontvangen werd, dan moet de lengte van de bitstring een veelvoud zijn van $$w$$ en moet de pariteitsbit van elk pakket correct zijn. Als dat niet het geval is, dan moet ongeldige bitstring uitgeschreven worden. Anders moet de bitstring uitgeschreven worden zonder de pariteitsbits die het protocol er bij verzenden heeft aan toegevoegd.
Invoer:
010000111010110011100110101101111000010000
8
even
verzenden
Uitvoer:
010000101101011100111001110101110111100000100001
Invoer:
11111001001011101110010100111010011000101100001011110110111011111111001010111
11
oneven
ontvangen
Uitvoer:
1111100100011101110001001110101100010110001011110101110111111100101011
Het pakket van 12 bits dat in het rood wordt aangeduid heeft een oneven aantal bits (7). Dit maakt de ontvangen bitstring ongeldig, omdat het communicatieprotocol met even pariteit werkt.
Invoer:
110100100011001110000100010111011110101001111000001111100110010000100101001111111111
12
even
ontvangen
Uitvoer:
ongeldige bitstring