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 tientallig stelsel waarmee we allemaal zijn opgevoed is het bekendst. Er is echter ook een twee-talig en een zestientallig 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 elektronische 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 - 2024 Hmneverl, het auteursrecht van dit artikel ligt bij de infoteur. Zonder toestemming is vermenigvuldiging verboden. Per 2021 gaat InfoNu verder als archief, artikelen worden nog maar beperkt geactualiseerd.
Gerelateerde artikelen
Binaire coderingenBinaire coderingenIn de digitale wereld rekent men met enen en nullen; het zogenaamde binaire talstelsel. Dit talstelsel heeft het grondge…
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…
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…

Wat is een "zwarte doos"Wat is een "zwarte doos"Een zwarte doos. U heeft er vast weleens van gehoord. Maar hoe wat zit er eigenlijk allemaal in zo'n doosje en hoe waaro…
Litouwen: Stadsverwarming - verwarming uit de kraanLitouwen: Stadsverwarming - verwarming uit de kraanDe stadsverwarming in Litouwen werkt aan een grotere efficiëntie, onafhankelijkheid op energiegebied en herbruikbare bra…
Bronnen en referenties
  • Inleidingsfoto: Geralt, Pixabay
Hmneverl (23 artikelen)
Laatste update: 27-11-2015
Rubriek: Wetenschap
Subrubriek: Techniek
Bronnen en referenties: 1
Per 2021 gaat InfoNu verder als archief. Het grote aanbod van artikelen blijft beschikbaar maar er worden geen nieuwe artikelen meer gepubliceerd en nog maar beperkt geactualiseerd, daardoor kunnen artikelen op bepaalde punten verouderd zijn. Reacties plaatsen bij artikelen is niet meer mogelijk.