InfoNu.nl > Wetenschap > Techniek > De Gray-code, binair maar dan anders

De Gray-code, binair maar dan anders

De Gray-code, binair maar dan anders Getallen kunnen op verschillende manieren worden weergegeven. Het decimale stelsel, een tien-tallig stelsel waarmee we allemaal zijn opgevoed is het bekendst. Er is echter ook een twee-talig en een zestien-tallig stelsel. Deze zijn vooral belangrijk geworden sinds de uitvinding van de computers. Computers kunnen het best omgaan met een stelsel met nullen en enen. Om technische redenen is er een handig een systeem bedacht waarbij bij opvolgende getallen er slechts één cijfer veranderd, de Gray-code. Deze codering is fouttolerant. De overgangen tussen de verschillende codes kunnen niet zorgen voor onbedoelde pieken en mocht er een bitje omvallen, dan blijft de fout beperkt tot 1 stap.

Het binaire stelsel versus de Gray-code, een tellertje

In dat artikel is te lezen dat de getallen 0 tot en met 15 binair gecodeerd worden volgens de tabel onderaan dit artikel. Deze codering kan echter een nadeel hebben. Stel, u gebruikt de normale binaire codering om bijvoorbeeld een tellertje te maken die van 0 naar 12 telt en dan weer 0 springt. De implementatie is zo gemaakt, dat als de teller groter dan twaalf is, de teller op nul gezet wordt.

Waar gaat het fout?

De teller begin te tellen. Bij de overgang van bijvoorbeeld waarde 7 naar 8 verandert de binaire code van 0111 naar 1000. Omdat iedere 0 of 1 in de electronica een aparte geheugencel is, moeten er dus vier veranderingen plaatsvinden. Alle cellen moeten van waarde veranderen. Theoretisch moet dat allemaal precies tegelijk gebeuren, maar in werkelijkheid lukt dat nooit precies. Stel nu dat de eerste nul in een één verandert, voordat de drie enen in een nul veranderen. In dat geval staat er heel eventjes de code 1111 in het geheugen. Omdat nu aan de voorwaarde voldaan is om de teller op 0 te zetten, zal de teller niet doortellen tot tien.

Daarnaast is het altijd mogelijk dat er een geheugencel defect raakt tijdens de levensduur van een electronische schakeling. Gebeurd dit bij een reguliere codering,dan zal de grote van van de fout afhangen van de significatie van het bit. Bij de Gray-code zal de fout nooit meer bedragen dan 1 stapgrootte.

Oplossingen

Het bovenstaande probleem is al bekend sinds de invoering van de digitale techniek. In de meeste gevallen wordt het opgelost door de toepassing van synchrone logica. Dat zorgt ervoor dat het resultaat van een verandering niet gebruikt wordt voordat alle uitgangen veranderd zijn. implementatie van synchrone logica gebeurd met behulp van zogenaamde flipflops. Deze nemen in bijvoorbeeld een computerchip extra ruimte in en zijn dus relatief duur. De voordelen van synchrone logica zijn echter zo groot dat hier meestal toch voor gekozen wordt.

In een aantal situaties kan synchrone logica niet gebruikt worden. In dat geval is er een andere codering van de getallen nodig. Hierbij is de codering voor de getallen dusdanig gekozen dat er slechts één element veranderd als het getal met 1 verhoogd of verlaagd wordt. Dit is de zogenaamde Gray-code. Het systeem is ontwikkeld door Frank Gray in 1947.

DecimaalBinairGray-code
000000000
100010001
200100011
300110010
401000110
501010111
601100101
701110100
810001100
910011101
1010101111
1110111110
1211001010
1311011011
1411101001
1511111000
© 2009 - 2019 Hmneverl, het auteursrecht (tenzij anders vermeld) van dit artikel ligt bij de infoteur. Zonder toestemming van de infoteur is vermenigvuldiging verboden.
Gerelateerde artikelen
Vergelijkingen oplossen(1): lineaire vergelijkingenVergelijkingen oplossen(1): lineaire vergelijkingenIedereen die op de middelbare school wiskunde heeft, krijgt te maken met wiskundige vergelijkingen. Misschien ben je hie…
recensieBoekrecensie: Mijn leven als privé-detective - Amy GrayMijn leven als een privé-detective vertelt het verhaal van Amy Gray die haar saaie baantje bij een uitgeverij inwisselt…
Binaire, octale en hexadecimale getallenstelselsBinaire, octale en hexadecimale getallenstelselsIn het gewone leven gebruiken wij het decimale stelsel voor de getallen. Een voor ons ‘gewoon’ getal bestaat uit cijfers…
Van analoog naar digitaalBijna alle machines werken met signalen. Een binair signaal of een digitaal signaal, maar hoe weet een machine nu wannee…
Rekenen met hexadecimale getallenRekenen met hexadecimale getallenVoor veel mensen is rekenen niet een van de meest favoriete bezigheden. Op school hebben we allemaal geleerd om te reken…
Bronnen en referenties
  • Inleidingsfoto: Geralt, Pixabay

Reageer op het artikel "De Gray-code, binair maar dan anders"

Plaats als eerste een reactie, vraag of opmerking bij dit artikel. Reacties moeten voldoen aan de huisregels van InfoNu.
Meld mij aan voor de tweewekelijkse InfoNu nieuwsbrief
Ik ga akkoord met de privacyverklaring en ben bekend met de inhoud hiervan
Infoteur: Hmneverl
Laatste update: 27-11-2015
Rubriek: Wetenschap
Subrubriek: Techniek
Bronnen en referenties: 1
Schrijf mee!