Getallen omzetten van Decimaal naar Hexadecimaal en terug
Een van de meest ingrijpende uitvindingen van de mens is de computer. Oorspronkelijk was het een soort
opgevoerd telraam voor de basisbewerkingen optellen, aftrekken en vermenigvuldigen. Al snel kwamen er meer
mogelijkheden: delen, machtsverheffen, enz.
Helaas zijn computers niet zo slim. Hun vermogen om te tellen gaat niet verder dan van 0 tot en met 1.
Gelukkig(?) zijn wij mensen in staat gebleken om daarmee computers te bouwen die in staat zijn zeer complexe
processen te bewaken en te besturen, tot complete fabrieken toe.
Maar ook software zoals tekstverwerkers en HTML-browsers gebruiken nog steeds niet meer dan nullen en enen.
Rekenen met alleen nullen en enen wordt "binair" (tweetallig) genoemd. Dit getalstelsel is gebaseerd
op het grondtal 2. Een binair getal (dat dus 0 of 1 kan zijn) wordt bit genoemd.
Het is handig gebleken om al die nullen en enen in groepjes van vier bij elkaar te nemen, in een getalstelsel
dat is gebaseerd op het grondtal 16. Er zijn daarin 16 cijfers, te weten:
Ieder cijfer past precies in 4 bits. Zo is bijvoorbeeld:
0h = 0000b; 1h = 0001b; 9h = 0101b; Ah = 0110b. Het getal Fh = 1111b.
Het is gebruikelijk om bits samen te nemen in groepjes van acht. Zo'n groepje wordt 'byte' genoemd. Er
"passen" precies twee hexadecimale cijfers in één byte. Dit maakt het handig om
reeksen bits weer te geven in hexadecimale getallen. Je ziet dit bijvoorbeeld toegepast als Windows meldt dat
er een proces is vastgelopen (al of niet met blauw scherm).
Lange reeksen bits zijn onprettig. Het hexadecimale getallen gaat al een stuk minder beroerd.
Ook bij het maken van computer-programma's of websites krijg je soms te maken met hexadecimale getallen.
Zo moet je in HTML kleuren opgeven met hexadecimale getallen als deze kleuren afwijken van de standaard-
kleuren rood, geel, blauw, enz.
Moderne, westerse mensen tellen echter tot 10 en niet tot 16. Dit komt (onder andere) omdat ze zijn geschapen
met 10 vingers en niet met 16. Het hebben van een rekenmachine om getallen om te zetten van decimaal naar
hexadecimaal en terug kan handig zijn. Op deze bladzijde vind je er een.
De methode voor het omrekenen van decimale getallen naar hexadecimale staat uitgebreid beschreven in boeken over wiskunde en over computers. Dat wordt hier niet herhaald. Het Javascript om getallen mee om te rekenen is wel beschikbaar om te downloaden, zie onderaan deze bladzijde.
- Er zijn twee functies beschikbaar:
- Hexa2Deci(str) De naam spreekt voor zichzelf. De parameter str moet een
hexadecimaal getal zijn. De functie geeft de decimale waarde van str terug. Voorbeeld:
De JavaScript codedocument.write(Hexa2Deci('ABCDEF'));
toont op het scherm:11259375 - Deci2Hexa(str,nullen_weg) De naam spreekt voor zichzelf. De parameter str moet een
decimaal getal zijn dat moet passen in een woord van 32 bits. Er geldt dus: str < 232-1.
De functie geeft de hexadecimale waarde van str terug.
De functie produceert altijd een string van 8 hexadecimale cijfers. Als echter de parameter nullen_weg de waarde true heeft bij aanroep van de functie, worden de nullen aan het begin van de string in groepjes van twee verwijderd. Als nullen_weg de waarde false heeft wordt het hexadecimale getal teruggegeven zoals het is berekend. De parameter nullen_weg mag ook worden weggelaten. Dat is hetzelfde als nullen_weg = false. Voorbeelden:
De JavaScript codedocument.write(Deci2Hexa('989498'));
toont op het scherm:000F193A
Met de JavaScript codedocument.write(Deci2Hexa('989498',false));
komt er ook:000F193A
Maar de JavaScript codedocument.write(Deci2Hexa('989498',true));
produceert:0F193A
- Hexa2Deci(str) De naam spreekt voor zichzelf. De parameter str moet een
hexadecimaal getal zijn. De functie geeft de decimale waarde van str terug. Voorbeeld:
- Merk op dat variabelen in JavaScript strings zijn. In de voorbeelden staan er dus ook aanhalingstekens
omheen. Als je wilt rekenen mag de string alleen "geldige" karakters bevatten. In dit geval zijn
dat decimale of hexadecimale cijfers. De functions Hexa2Deci en Deci2Hexa gaan ervan uit dat
de invoer correct is!
- Als je hier eens mee wilt spelen: Hier vind je een echte decimaal-hexadecimaal rekenmachine. Druk op
de knop!
Gebruik:
- De code met de functions staat in de <HEAD>. Aanroep vanuit de <BODY> of de <HEAD>.
- De file decihexa.js kan zonder aanpassing worden gebruikt.
(Zet dit JavaScriptje in de <HEAD>)
<script src="decihexa.js"></script>
Downloaden:
Druk op de knop:
File: voorb037.zip, 1318 bytes, bevat alleen decihexa.js.
Opmerking:
Het script van de rekenmachine zelf wordt niet apart besproken. De aanpak is te vinden in de items
Formulier lokaal gebruiken, Radiobuttons
en Checkboxen en Tekst-invoer.