Het zal geen verassing zijn dat computers rekenen met enen en nullen. Maar waar komt dit vandaan? Hoe verhoudt dit zich tot het decimale getallenstelsel? En waar komt hexadecimaal vandaan? Deze vragen zullen in deze post worden beantwoord.
Het Decimale Stelsel
Het is het makkelijkste om bij het bekende te beginnen, het decimale getallenstelsel. Dit is het stelsel waar de meesten in de Westerse wereld mee opgroeien. Het stelsel heeft een basis van tien, in de Engelse taal wordt dit aangegeven als base ten. Dit betekent dat het stelsel bestaat uit tien verschillende cijfers. Dit zijn:
0, 1, 2, 3, 4, 5, 6, 7, 8 en 9
Een getal dat bestaat uit één cijfer bevat enkel éénheden. Ze hebben enkel de waarde van dat ene cijfer. Het getal 4, heeft een waarde van vier. Op het moment dat er een getal met een waarde hoger dan negen moet worden opgeschreven, zijn tientallen nodig.
Het getal 24 bestaat uit twee tientallen en vier éénheden. Dit kan worden opgeschreven als 20 + 4. Dit werkt ook zo voor honderdtallen. Het getal 248 bestaat uit twee honderdtallen, vier tientallen en acht éénheden; oftewel: 200 + 40 + 8.
| Honderden | Tientallen | Eénheden | Totaal |
| 0 | 40 | 8 | 48 |
| 300 | 60 | 7 | 367 |
| 0 | 0 | 1 | 1 |
Waarom al die aandacht voor dit simpele concept? Omdat het essentieel is om over te kunnen gaan naar andere stelsels. Kijk nog eens naar de basis van het decimale getallenstelsel: tien. Tientallen zijn één, vermenigvuldigd met de basis (1 * 10 = 10). Honderdtallen zijn dat, vermenigvuldigd met de basis (1 * 10 * 10 = 100). De tabel die hierboven staat kan ook worden opgeschreven op de volgende manier:
| Honderden | Tientallen | Eénheden | Totaal |
| 0 * 100 | 4 * 10 | 8 * 1 | 48 |
| 3 * 100 | 6 * 10 | 7 * 1 | 367 |
| 0 * 100 | 0 * 10 | 1 * 1 | 1 |
De honderd voor honderdtallen, de tien voor tientallen en de één voor eenheden zijn dus niet willekeurig gekozen. Tijd voor een wat meer wiskundige benadering. Een éénheid heeft de kleinst mogelijke waarde in een heel getal. Dit wordt aangegeven met de basis, machtsverheven met nul.
Tientallen zijn de eerste keer dat het ‘maximum’ wordt overgeschreden. In het geval van het decimale getallenstelsel, is de maximale waarde die kan worden aangegeven met éénheden negen. Tientallen worden aangegeven met de basis, machtsverheven met één. Honderdtallen zijn de tweede keer dat het maximum wordt overschreden, en is de basis, machtsverheven met twee. Begint het patroon zichtbaar te worden?
| 102 = 100 | 101 = 10 | 100 = 1 | Totaal |
| 0 * 100 | 4 * 10 | 8 * 1 | 48 |
| 3 * 100 | 6 * 10 | 7 * 1 | 367 |
| 0 * 100 | 0 * 10 | 1 * 1 | 1 |
Binaire Getallen
Het binaire getallenstelsel werkt niet anders dan het decimale stelsel. Het verschil zit hem in het feit dat er geen negen cijfers zijn, maar twee:
0 en 1
Omdat er maar twee cijfers zijn in plaats van tien, moeten er sneller cijfers worden toegevoegd. Het eerste cijfer zijn éénheden, het tweede cijfer zijn tweetallen en het derde cijfer zijn viertallen. Het derde cijfer voor het decimale getallenstelsel had een waarde van 1 * 10 * 10 = 100 of tien tot de tweede macht; het derde cijfer van het binaire stelsel heeft een waarde van 1 * 2 * 2 = 4 of twee tot de tweede macht.
000 = 0 (0 + 0 + 0)
001 = 1 (0 + 0 + 1)
010 = 2 (0 + 2 + 0)
011 = 3 (0 + 2 + 1)
100 = 4 (4 + 0 + 0)
101 = 5 (4 + 0 + 1)
110 = 6 (4 + 2 + 0)
111 = 7 (4 + 2 + 1)
In de vorige sectie is aangetoond dat de waarde van iedere positie wordt berekent door de basis te nemen, machtsverheven met het aantal keer dat het maximum is bereikt. Hier kan een formule van worden gemaakt:
waarde = basisoverschreidingen
Op deze manier kan de waarde berekend worden van het binaire getal 101, om tot de waarde van vijf te komen. Komen er aan de linkerkant van het getal cijfers bij? Dan dient de waarde van het laatste cijfer vermenigvuldigd te worden met de basis om de nieuwe waarde te krijgen. Het vierde cijfer wordt zo 4 * 2 = 8, het vijfde cijfer is 8 * 2 = 16, enzovoorts.
| 22 = 4 | 21 = 2 | 20 = 1 | Totaal |
| 1 * 4 | 0 * 2 | 1 * 1 | 5 |
Hexadecimaal
In de computerwetenschappen hebben ook hexadecimale getallen een belangrijke rol. Hex betekent zes; decimaal, zoals intussen bekend, tien. Hexadecimaal is daarom een getallenstelsel met zestien cijfers. Om tien tot en met vijftien aan te geven, worden de letters A tot en met F gebruikt.
0, 1, 2, 3, 4, 5, 6, 7,
8, 9, A, B, C, D, E en F
Waarom worden hexadecimale getallen gebruikt? Kortgezegd: het is een makkelijke manier voor de computer om met grotere getallen te werken. De keuze voor zestien is gebaseerd op het principe van nibbles. Misschien is het bekend dat acht bits, samen een byte vormen, een nibble is de helft van een byte: vier bits.
Het maximale getal dat gemaakt kan worden met een nibble is 1111. Dit staat gelijk aan 8 + 4 + 2 + 1 = 15. Door nul mee te rekenen, zijn er zestien beschikbare opties. Hierdoor kan een nibble worden omgezet naar één cijfer uit het hexadecimale stelsel. Een byte, kan worden omgezet naar twee van die cijfers.
De berekening van de waarde is hetzelfde als voor de andere stelsels, zoals te zien in de tabel hieronder.
| 162 = 256 | 161 = 16 | 160 = 1 | Totaal |
| A * 256 | 2 * 16 | F * 1 | 2607 |
| 10 * 256 | 2 * 16 | 15 * 1 | 2607 |
Maar waarom is hexadecimaal makkelijker voor computers dan andere stelsels? Dit is het makkelijkste toe te lichten met een voorbeeld: kleuren. De meeste kleuren op een computer worden gemaakt met een RGB-waarde. Door rood, groen en blauw te mengen, kunnen vrijwel alle kleuren worden gemaakt.
Iedere kleur wordt opgeslagen als één byte (of twee nibbles, of acht bits). Dit geeft iedere kleur 256 mogelijkheden, aangegeven door twee nibbles óf twee hexadecimale cijfers. De twee cijfers voor de rode kleur, worden gevolgd door de twee cijfers voor de groene kleur, die worden gevolgd door de twee cijfers voor de blauwe kleur. Hieronder staat een tabel met vier kleuren in de verschillende stelsels.
| Kleur | Binair | Decimal | Hex |
| Wit | 11111111 11111111 11111111 | 255255255 | FFFFFF |
| Zwart | 00000000 00000000 00000000 | 000000000 | 000000 |
| Oranje | 11111110 10011001 00000000 | 254153000 | FE9900 |
| Paars | 11001100 01101100 11100111 | 204108231 | CC6CE7 |
Binaire getallen opschrijven is voor een normaal persoon niet te doen. Decimale getallen zijn makkelijk, maar moeilijk om te zetten naar binaire getallen waardoor ze langzamer zijn. Hex is iets moeilijker te lezen, maar omdat ze allemaal direct naar binair kunnen worden omgezet, zijn ze sneller om te berekenen. Het is de ultieme balans tussen complexiteit voor mensen en simpliciteit voor computers.
| F | E | 9 | 9 | 0 | 0 |
| 1111 | 1110 | 1001 | 1001 | 0000 | 0000 |
Afsluitend
Dat was een heleboel informatie over de drie belangrijkste getallenstelstel voor de computerwetenschappen. Voor meer informatie over het rekenen met binaire getallen, kan dit artikel van Beter rekenen helpen. Voor oefeningen met binaire getallen is dit artikel van CS Unplugged interessant. Voor meer kleuren in het hexadecimale stelsel, is dit artikel van Rapid Tables een goede bron.
Momenteel zijn er geen gerelateerde berichten op Jimmaphy.
Plaats een reactie