Het grote nadeel van binaire getallen is dat het binaire equivalent van een groot decimaal basis-10 getal vrij lang kan zijn.
Bij het werken met grote digitale systemen, zoals computers, is het gebruikelijk binaire getallen te vinden die uit 8, 16 en zelfs 32 cijfers bestaan, waardoor het moeilijk is zowel te lezen als te schrijven zonder fouten te produceren, vooral wanneer veel binaire getallen van 16 of 32 bits worden gebruikt.
Een veelgebruikte manier om dit probleem op te lossen is de binaire getallen te rangschikken in groepen of sets van vier bits (4-bits). Deze groepen van 4 bits maken gebruik van een ander type nummeringssysteem dat ook vaak wordt gebruikt in computer- en digitale systemen, namelijk Hexadecimale getallen.
Hexadecimale getallenreeks
Het “Hexadecimale” of eenvoudigweg “Hex”-nummeringssysteem maakt gebruik van het 16-bits basissysteem en is een populaire keuze voor het weergeven van lange binaire waarden, omdat hun formaat vrij compact is en veel gemakkelijker te begrijpen in vergelijking met de lange binaire reeksen van 1’s en 0’s.
Omdat het een Base-16 systeem is, gebruikt het hexadecimale getallenstelsel dus 16 (zestien) verschillende cijfers met een combinatie van getallen van 0 tot en met 15. Met andere woorden, er zijn 16 mogelijke cijfersymbolen.
Echter, er is een potentieel probleem met het gebruik van deze methode van cijfernotatie, veroorzaakt door het feit dat de decimale cijfers 10, 11, 12, 13, 14 en 15 gewoonlijk worden geschreven met twee naast elkaar liggende symbolen. Als we bijvoorbeeld 10 in hexadecimaal schrijven, bedoelen we dan het decimale getal tien, of het binaire getal twee (1 + 0). Om dit lastige probleem te omzeilen worden hexadecimale getallen die de waarden tien, elf, … , vijftien worden vervangen door hoofdletters van respectievelijk A, B, C, D, E en F.
In het Hexadecimale Nummering System gebruiken we dan de getallen van 0 tot 9 en de hoofdletters A tot F om het binaire of decimale getalequivalent weer te geven, te beginnen met het minst significante cijfer aan de rechterkant.
Zoals we zojuist hebben gezegd, kunnen binaire reeksen vrij lang en moeilijk te lezen zijn, maar we kunnen het leven gemakkelijker maken door deze grote binaire getallen op te splitsen in even groepen, zodat ze veel gemakkelijker kunnen worden opgeschreven en begrepen. Bijvoorbeeld, de volgende groep van binaire cijfers 1101 0101 1100 11112 zijn veel gemakkelijker te lezen en te begrijpen dan 110101110011112 wanneer ze allemaal samengebundeld zijn.
In het dagelijks gebruik van het decimale getallenstelsel gebruiken we groepen van drie cijfers of 000’s van de rechterkant om een zeer groot getal, zoals een miljoen of triljoen, voor ons begrijpelijker te maken en hetzelfde geldt ook in digitale systemen.
Hexadecimale getallen is een complexer systeem dan het gebruik van alleen binaire of decimale getallen en wordt voornamelijk gebruikt bij computers en geheugenadreslocaties. Door een binair getal in groepen van 4 bits te verdelen, kan elke groep of reeks van 4 cijfers een mogelijke waarde hebben tussen “0000” (0) en “1111” ( 8+4+2+1 = 15 ), wat een totaal van 16 verschillende getalcombinaties van 0 tot 15 geeft. Vergeet niet dat “0” ook een geldig cijfer is.
We herinneren ons uit onze eerste tutorial over Binaire Getallen dat een 4-bits groep cijfers een “nibble” wordt genoemd en aangezien 4-bits ook nodig zijn om een hexadecimaal getal te produceren, kan een hexadecimaal cijfer ook worden gezien als een nibble, of een halve byte. Dan zijn er twee hexadecimale getallen nodig om een volledige byte te produceren, variërend van 00 tot FF.
Ook omdat 16 in het decimale systeem de vierde macht van 2 is ( of 24 ), is er een directe relatie tussen de getallen 2 en 16, zodat één hexadecimaal cijfer een waarde heeft die gelijk is aan vier binaire cijfers, dus nu is q gelijk aan “16”.
Omwille van deze relatie kunnen vier cijfers in een binair getal worden weergegeven met een enkel hexadecimaal cijfer. Dit maakt de conversie tussen binaire en hexadecimale getallen zeer eenvoudig, en hexadecimaal kan worden gebruikt om grote binaire getallen met veel minder cijfers te schrijven.
De getallen 0 tot en met 9 worden nog steeds gebruikt zoals in het oorspronkelijke decimale systeem, maar de getallen van 10 tot en met 15 worden nu weergegeven door hoofdletters van het alfabet van A tot en met F en de relatie tussen decimaal, binair en hexadecimaal is hieronder gegeven.
Hexadecimale Getallen
Decimaal Getal | 4-bit binair getal | Hexadecimaal getal |
0 | 0000 | 0 |
1 | 0001 | 1 |
2 | 0010 | 2 |
3 | 0011 | 3 |
4 | 0100 | 4 |
5 | 0101 | 5 |
6 | 0110 | 6 |
7 | 0111 | 7 |
8 | 1000 | 8 |
9 | 1001 | 9 |
10 | 1010 | A |
11 | 1011 | B |
12 | 1100 | C |
13 | 1101 | D |
14 | 1110 | E |
15 | 1111 | F |
16 | 0001 0000 | 10 (1+0) |
17 | 0001 0001 | 11 (1+1) |
Vervolg naar boven in groepen van vier |
Gebruik makend van het oorspronkelijke binaire getal van hierboven 1101 0101 1100 11112 kan dit nu worden omgezet in een equivalent hexadecimaal getal van D5CF dat veel gemakkelijker te lezen en te begrijpen is dan een lange rij van 1’s en 0’s die we eerder hadden.
Dus door hexadecimale notatie te gebruiken, kunnen digitale getallen worden geschreven met minder cijfers en met een veel kleinere kans op het optreden van een fout. Evenzo is het omzetten van hexadecimale getallen terug naar binaire getallen eenvoudigweg de omgekeerde bewerking.
De belangrijkste kenmerken van een hexadecimaal getallenstelsel is dat er 16 verschillende telcijfers zijn, van 0 tot F, waarbij elk cijfer een gewicht of waarde van 16 heeft, beginnend bij het minst significante bit (LSB). Om hexadecimale getallen te onderscheiden van denary getallen, wordt een voorvoegsel van ofwel een “#”, (Hash) of een “$” (Dollarteken) gebruikt vóór de eigenlijke hexadecimale getalswaarde, #D5CF of $D5CF.
Aangezien de basis van een hexadecimaal systeem 16 is, hetgeen ook het aantal individuele symbolen vertegenwoordigt dat in het systeem wordt gebruikt, wordt het subscript 16 gebruikt om een getal uitgedrukt in hexadecimaal aan te duiden. Bijvoorbeeld, het vorige hexadecimale getal wordt uitgedrukt als: D5CF16
Tellen met behulp van hexadecimale getallen
Dus we weten nu hoe we 4 binaire cijfers kunnen omzetten in een hexadecimaal getal. Maar wat als we meer dan 4 binaire cijfers hadden, hoe zouden we dan in hexadecimaal tellen voorbij de laatste letter F. Het eenvoudige antwoord is om opnieuw te beginnen met een andere set van 4 bits, als volgt.
0…tot…9, A,B,C,D,E,F, 10…tot…19, 1A, 1B, 1C, 1D, 1E, 1F, 20, 21….etc
Ga niet in de war, 10 of 20 is NIET tien of twintig het is 1 + 0 en 2 + 0 in hexadecimaal. In feite bestaat twintig niet eens in hexadecimaal. Met twee hexadecimale getallen kunnen we tot FF tellen, wat gelijk is aan decimaal 255. Om hoger te tellen dan FF zouden we een derde hexadecimaal cijfer links toevoegen, zodat het eerste 3-bits hexadecimale getal 10016 zou zijn, (25610) en het laatste FFF16, (409510). Het maximale 4-cijferige hexadecimale getal is FFFF16, wat gelijk is aan 65.535 in decimaal, enzovoort.
Voorstelling van een hexadecimaal getal
MSB | Hexadecimaal getal | LSB | ||||||
168 | 167 | 166 | 165 | 164 | 163 | 162 | 161 | 160 |
4.3G | 2.6G | 16M | 1M | 65k | 4k | 256 | 16 | 1 |
Dit toevoegen van extra hexadecimale cijfers om zowel decimale als binaire getallen om te zetten in een Hexadecimaal Getal is heel eenvoudig als er 4, 8, 12 of 16 binaire cijfers om te zetten. Maar we kunnen ook nullen toevoegen aan de linkerkant van het meest significante bit, de MSB als het aantal binaire bits geen veelvoud van vier is.
Bijvoorbeeld, 110010110110012 is een binair getal van veertien bits dat te groot is voor slechts drie hexadecimale cijfers, maar te klein voor een vier hexadecimaal getal. Het antwoord is om extra nullen toe te voegen aan het meest linkse bit tot we een volledige set van vier bits binaire getallen of veelvouden daarvan hebben.
Extra 0’s toevoegen aan een binair getal
Binair getal | 0011 | 0010 | 1101 | 1001 |
Hexadecimaal getal | 3 | 2 | D | 9 |
Het grootste voordeel van een hexadecimaal getal is dat het zeer compact is en door het gebruik van een basis van 16 betekent dat het aantal cijfers dat wordt gebruikt om een bepaald getal weer te geven gewoonlijk minder is dan in binair of decimaal. Ook is het snel en gemakkelijk om te zetten tussen hexadecimale getallen en binaire.
Hexadecimale Getallen Voorbeeld No1
Verander het volgende Binaire getal 1110 10102 in zijn Hexadecimale getal equivalent.
Binair getal = 111010102 | |||
Groepeer de bits in vieren, beginnend bij de rechterkant | |||
= | 1110 | 1010 | |
Zoek het decimale equivalent van elke individuele groep | |||
= | 14 | 10 | (in decimaal) |
Omzetten naar Hexadecimaal met behulp van bovenstaande tabel | |||
= | E | A | (in Hex) |
Dan, het hexadecimale equivalent van het binaire getal
1110 10102 is #EA16 |
Hexadecimale getallen Voorbeeld No2
Converteer het volgende hexadecimale getal #3FA716 in zijn binaire equivalent, en ook in zijn decimale of denaire equivalent met behulp van subscripts om elk nummeringsysteem aan te duiden.
#3FA716
= 0011 1111 1010 01112
= (8192 + 4096 + 2048 + 1024 + 512 + 256 + 128 + 32 + 4 + 2 + 1)
= 16,29510
Dan kan het Decimale getal van 16,295 worden weergegeven als:-
#3FA716 in Hexadecimaal
of
0011 1111 1010 01112 in Binair.
Hexadecimale Getallen Samenvatting
Dan samengevat. Het hexadecimale of hexadecimale getallensysteem wordt algemeen gebruikt in computers en digitale systemen om grote reeksen binaire getallen terug te brengen tot een voor ons gemakkelijk te begrijpen reeks van vier cijfers. Het woord “Hexadecimal” betekent zestien, omdat dit type digitaal nummeringsysteem 16 verschillende cijfers gebruikt van 0-tot-9, en A-tot-F.
Hexadecimale getallen groeperen binaire getallen in reeksen van vier cijfers. Om een binaire reeks om te zetten in een equivalent hexadecimaal getal, moeten we eerst de binaire cijfers groeperen in een set van 4-bits. Deze binaire reeksen kunnen elke waarde hebben van 010 ( 00002 ) tot 1510 ( 11112 ) die het hexadecimale equivalent van 0 tot en met F vertegenwoordigen.
In de volgende tutorial over binaire logica zullen we kijken naar het omzetten van hele reeksen binaire getallen in een ander digitaal nummeringssysteem, Octale getallen genaamd, en vice versa.