BCD-code

Uit Wikipedia, de vrije encyclopedie

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 namelijk eenvoudiger om te zetten naar ASCII- of EBCDIC-cijfers dan een binair getal).

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. 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 | brontekst bewerken]

Drie manieren om de cijfers nul t/m negen in een computergeheugen of opslagmedium binair vast te leggen.

Om een decimaal getal om te zetten in BCD-code wordt elk afzonderlijk cijfer omgezet in een 4 bits-notatie. Zie het plaatje rechts.

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.

Alternatieven[bewerken | brontekst bewerken]

Aiken-code[bewerken | brontekst bewerken]

Een variant op BCD-code is de Aiken-code. Een van de voordelen van deze code is dat het een zelfcomplementerende code is, wat betekent dat 0 (0000) en 9 (1111), 1 (0001) en 8 (1110) enz. steeds elkaars 1-complement (elk bitje omgeklapt) vormen.

Stibitz-code[bewerken | brontekst bewerken]

Een andere variant is excess-3, ook wel naar George Stibitz Stibitz-code genoemd, waar bij de binaire codes 0000 t/m 1001 steeds drie (11) is opgeteld. Ook dit is een zelfcomplementerende code.

Zesbits-code[bewerken | brontekst bewerken]

Om ook letters en een beperkt aantal leestekens binair weer te geven hebben computerfabrikanten ieder hun eigen codering ontworpen, zoals Honeywell Bull met GBCD.

Een meer algemene, merkonafhankelijke weergavecode is Base64.