Controlecijfer

Uit Wikipedia, de vrije encyclopedie
Ga naar: navigatie, zoeken

Een controlecijfer, checksum en dergelijke zijn getallen om een systematische redundantie te creëren in gegevens om het invoeren, lezen, schrijven en verzenden ervan te controleren, op een wijze die efficiënter is dan alles twee keer te doen. Er wordt een methode gebruikt die weliswaar geen volledige controle biedt, maar de kans groot maakt dat een fout wordt ontdekt.

Eén mogelijkheid is dat voor en na de te controleren actie een resultaat wordt berekend (compacter dan de gegevens zelf) en de twee resultaten vergeleken worden.

Een andere mogelijkheid is dat bij een nummering niet alle getallen worden gebruikt. Nadat een gebruiker een nummer heeft ingevoerd, wordt een algoritme toegepast om te controleren of het een geldig nummer is.

Een meer geavanceerde methode van foutherkenning is de Cyclic Redundancy Check of CRC. Met nog betere methodes zoals de Hammingcode kan de fout niet alleen gevonden, maar ook hersteld worden.

Getallen en codes waarin checksums voorkomen[bewerken]

In de tijd van de homecomputer werd een checksum veel gebruikt bij programma's in machinetaal of BASIC die vroeger vanaf papier ingegeven moesten worden. Het was een aparte code die veelal aan het eind van een invoerregel volgde en het afhankelijk was van de te controleren getalswaarden. Als een van de invoertekens niet correct was, werd de uitvoer geweigerd en moest eerst een correctie plaatsvinden.

Een streepjescodelezer, zoals bij de kassa van de supermarkt, piept als hij een code gelezen heeft. Piept hij niet, dan is er wellicht een fout in de controlesom ontstaan door een leesfout. Het probleem is snel verholpen door het nog eens te proberen.

Voorbeeld checksum CAS-nummer[bewerken]

Dit nummer bestaat uit maximaal 9 cijfers, verdeeld in 3 groepjes die gescheiden zijn met een streepje. Het meest rechtse cijfer (R) is de uitkomst van de checksum en is de rest, die wordt bepaald door de volgende formule gedeeld door 10:

Als deze rest 10 is wordt een "X" als laatste "cijfer" geschreven.
Voorbeelden:


  • geeft als rest 2 (want en ).

  • geeft als rest 0.