BCD-code

Een BCD-code (Engels: afkorting voor binary-coded decimal) is een binaire code om decimale getallen op te slaan. Ieder cijfer van het getal wordt gecodeerd door een rij 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.

De BCD-codering werd vroeger veel gebruikt om elektronica mee te vereenvoudigen, vooral bij de weergave van cijfers door pixie- en nixiebuizen en hun opvolgers de zevensegmentendisplays. De taal COBOL maakt ook 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 lezen. BCD-cijfers kunnen namelijk eenvoudiger naar ASCII- of EBCDIC-cijfers worden omgezet dan een binair getal.

Het gebruik van de BCD-code is zowel inefficiënt in geheugengebruik, van de 16 verschillende combinaties die met vier bits mogelijk zijn worden er maar tien gebruikt, als wanneer er veel mee moet worden gerekend. De meeste computersoftware maakt tegenwoordig van andere coderingen gebruik, waarbij de waarden voor de decimale weergave van getallen meestal rechtstreeks worden berekend.

Om een decimaal getal in BCD-code om te zetten wordt ieder afzonderlijke cijfer van dat getal omgezet in een rij van vier bits omgezet. Voorbeeld: het decimale getal 167 wordt gesplitst in 1-6-7 en deze drie worden naar hun binaire waarde omgezet:

1 = 0001
6 = 0110
7 = 0111

De BCD-code van 167 is dus 0001 0110 0111. Er zijn spaties voor de leesbaarheid toegevoegd. 1457 decimaal wordt op dezelfde manier in BCD-code 0001 0100 0101 0111 en 16854 wordt 0001 0110 1000 0101 0100.

Alternatieven

[bewerken | brontekst bewerken]
  • Base64
  • Aiken-code – Variant op BCD-code en een zelfcomplementerende code
  • Stibitz-code – naar George Stibitz genoemd, waar bij de binaire codes 0000 tot en met 1001 steeds drie wordt opgeteld, de code is ook zelfcomplementerend
  • Computerfabrikanten hebben om ook letters en een beperkt aantal leestekens binair weer te geven ieder hun eigen codering ontworpen, zoals Honeywell Bull met GBCD.[bron?]
BCD Aiken Stibitz
0 0000 0 0000 0 0011
1 0001 1 0001 1 0100
2 0010 2 0010 2 0101
3 0011 3 0011 3 0110
4 0100 4 0100 4 0111
5 0101 5 1011 5 1000
6 0110 6 1100 6 1001
7 0111 7 1101 7 1010
8 1000 8 1110 8 1011
9 1001 9 1111 9 1100

De Aiken en de Stibitz-code zijn zelf-complementerend. Dat betekent dat de codes van twee getallen waarvan de som negen is elkaar logisch complement zijn, waar een 0 in de ene code van het ene getal staat, staat een 1 in de code van het andere getal en omgekeerd.