BCD-code

Uit Wikipedia, de vrije encyclopedie
Ga naar: navigatie, zoeken
Schematische weergave van BCD-codes

Een BCD-code (Engels: afkorting voor binary coded decimal) is een binaire code om decimale getallen op te slaan. Elk cijfer van het getal wordt gecodeerd door een groep van vier bits die een binaire representatie zijn van het betrokken cijfer. Een gevolg hiervan is dat de hexadecimale weergave van een getal in BCD-code er hetzelfde uitziet als de decimale variant.

Vroeger werd BCD-codering veel gebruikt om de elektronica te vereenvoudigen, met name bij de weergave van cijfers door pixie- en nixiebuizen en hun opvolgers de zevensegmentendisplays. Daarnaast maakt de taal COBOL veel gebruik van deze code omdat het in een administratieve omgeving met (nog) niet zo snelle machines eenvoudiger was een bepaald cijfer uit een getal te "lichten" (BCD-cijfers zijn vrij eenvoudig om te zetten naar ASCII- of EBCDIC-cijfers) dan een binair getal om te rekenen.

De meeste computersoftware maakt tegenwoordig gebruik van andere coderingen en de waarden voor de (decimale) weergave van getallen worden meestal rechtstreeks vanuit deze coderingen berekend.

Vorming van BCD-code[bewerken]

Om een decimaal getal om te zetten in BCD-code wordt elk afzonderlijk cijfer omgezet in een 4 bits-notatie. Zie nevenstaande afbeelding: zwarte vakjes zijn bits die "aan" staan (1), witte vakjes zijn bits die "uit" staan (0).

Voorbeeld: het decimale getal 167 wordt gesplitst in 1-6-7. Elk cijfer wordt omgezet naar zijn binaire waarde:

1 = 0001
6 = 0110
7 = 0111

De BCD-code van 167 is dus 0001 0110 0111.[1] Op dezelfde manier wordt decimaal 1457 in BCD-code 0001 0100 0101 0111 en 16854 wordt 0001 0110 1000 0101 0100.

Alternatief[bewerken]

Het gebruik van BCD-code is niet efficiënt in geheugengebruik (van de 16 verschillende combinaties die met 4 bits te vormen zijn worden er slechts 10 gebruikt) of als er veel mee gerekend moet worden. Een variant op BCD-code is de Aiken-code die efficiënter is qua rekenwerk[bron?] en over foutcorrigerende functionaliteit beschikt waardoor ze beter geschikt is voor gegevensoverdracht.

Voetnoot
  1. Spaties alleen toegevoegd vanwege de leesbaarheid