Binair en hexadecimaal: talstelsels voor digitale elektronica
Digitale elektronica kent maar twee toestanden: aan en uit. Daarom rekent ze in het binaire stelsel. Omdat lange rijen nullen en enen onleesbaar zijn, gebruiken we daarnaast het hexadecimale stelsel, dat elke vier bits compact samenvat.
Een microcontroller, een geheugenadres of een kleurcode op een scherm: overal in de digitale wereld kom je andere talstelsels tegen dan het vertrouwde decimale. De reden is fysiek. Een digitale schakeling onderscheidt betrouwbaar twee spanningsniveaus, hoog en laag, en koppelt die aan de cijfers 1 en 0. Met die twee cijfers bouw je elk getal op, net zoals je met tien cijfers het decimale stelsel opbouwt. Onze getalstelselcalculator rekent moeiteloos tussen decimaal, binair en hexadecimaal.
Hoe het binaire stelsel werkt
In het decimale stelsel staat elk cijfer voor een macht van tien: eenheden, tientallen, honderdtallen. In het binaire stelsel staat elk cijfer (elke bit) voor een macht van twee: 1, 2, 4, 8, 16, enzovoort. Het binaire getal 1011 betekent daarom 1x8 + 0x4 + 1x2 + 1x1 = 11 decimaal. Acht bits samen vormen een byte en kunnen 256 verschillende waarden voorstellen, van 0 tot en met 255. Dat is precies het bereik waarmee veel sensoren en uitgangen werken.
Waarom hexadecimaal zo handig is
Lange binaire getallen zijn lastig te lezen en foutgevoelig om over te schrijven. Het hexadecimale stelsel lost dat op door met zestien symbolen te werken: de cijfers 0 tot en met 9 en de letters A tot en met F voor de waarden 10 tot en met 15. De truc zit in het getal zestien: dat is precies twee tot de macht vier. Daardoor komt elk hex-cijfer overeen met exact vier bits. De byte 1011 0100 schrijf je in hex simpelweg als B4: de eerste vier bits zijn B (11), de laatste vier zijn 4. Omrekenen wordt zo een kwestie van groepjes van vier bits vertalen.
Vlot omrekenen
Van decimaal naar binair deel je herhaaldelijk door twee en noteer je de resten van onder naar boven. Van binair naar hex groepeer je de bits per vier vanaf rechts en vertaal je elk groepje. Van hex naar binair doe je het omgekeerde: elk hex-cijfer wordt vier bits. Het mooie is dat binair en hex naadloos op elkaar aansluiten, terwijl decimaal juist niet netjes in machten van twee past. Daarom zie je in datasheets en registers vrijwel altijd hex, en zelden decimaal.
Waar je dit tegenkomt
Talstelsels zijn geen theorie maar dagelijkse praktijk zodra je met digitale onderdelen werkt. De resolutie van een analoog-naar-digitaalomzetter druk je uit in bits; reken die door met de ADC-resolutiecalculator. En een pulsbreedte-uitgang stel je vaak in als een binaire waarde die een gemiddelde spanning bepaalt; dat zie je in de PWM-spanningscalculator. In beide gevallen helpt het om vlot tussen de stelsels te kunnen schakelen.
Veelgemaakte fouten
- Hex-letters als decimale cijfers lezen. A tot en met F staan voor 10 tot en met 15, niet voor losse decimale cijfers.
- Bits verkeerd om groeperen. Groepeer altijd vanaf rechts (de minst significante bit) per vier, anders verschuift de waarde.
- Het aantal bits vergeten. Een waarde van 200 past in een byte (8 bits), maar 300 niet; let op overloop bij 8-bits registers.
Met een paar machten van twee in je hoofd en de regel dat een hex-cijfer vier bits is, lees je binaire en hexadecimale getallen moeiteloos. Reken om met de getalstelselcalculator.