Het binaire ( grondtal 2 ) getalstelsel heeft twee mogelijke waarden, meestal voorgesteld als 0 of 1, voor elke positie in een getal. Het verschil met het decimale ( grondtal 10 ) talstelsel is dat er daarbij tien mogelijke waarden zijn (0,1,2,3,4,5,6,7,8, of 9) voor elke positie.
Om verwarring te voorkomen bij het gebruik van verschillende getalstelsels, kan het grondtal van een getal aangeduid worden door deze na het getal in subscript te vermelden. Bijvoorbeeld, het binaire getal 10011100 kan geschreven worden met het grondtal 2 door het te schrijven als 10011100 2 . Het decimale getal 156 kan geschreven worden als 156 10 of voluit als "honderdzesenvijftig, grondtal 10".
Omdat het binaire stelsel de machinetaal is van computers moeten serieuze programmeurs volledig begrijpen hoe ze binair getallen naar decimale getallen kunnen converteren. Het omzetten in de omgekeerde richting, van decimaal naar binair, is vaak moeilijker om als eerste te leren.
Let Op: Dit gaat ALLEEN over berekeningen en niet over ASCII vertalingen.
Stappen
-
In dit voorbeeld gaan we het binaire getal 10011011 2 naar decimaal converteren. Maak een lijst van de machten van twee van rechts naar links. Begin met 2 0 , dit heeft de waarde "1". Vermeerder de exponenten met 1 voor elke macht. Stop zodra het aantal elementen in de lijst gelijk is aan het aantal cijfers in het binaire getal. Het getal van het voorbeeld, 10011011, heeft 8 cijfers, dus de lijst zal er zo uit komen te zien: 128, 64, 32, 16, 8, 4, 2, 1
-
Schrijf het binaire getal onder de lijst.
-
Verbind met lijnen de binaire getallen met de machten van twee. Trek lijnen die elk binair cijfer verbindt met de bijbehorende tweede macht die er boven staat. Begin bij het eerste binaire cijfer, vanaf de rechterkant, en ga zo door tot je alle binaire cijfers en de machten met elkaar hebt verbonden.
-
Ga alle cijfers van het binaire getal bij langs. Als het cijfer een 1 is, schrijf dan de bijbehorende tweede macht onder de lijn, direct onder het cijfer. Is het cijfer een 0, schrijf dan een 0 onder lijn.
-
Tel de getallen onder de lijn bij elkaar op. De som zou 155 moeten zijn. Dit is het decimale equivalent van het binaire getal 10011011. Of, geschreven met het grondtal in subscript:
-
Als je deze methode vaak herhaalt zul je merken dat je de machten van twee beter onthoudt, waardoor je stap 1 kunt overslaan.Advertentie
-
1Deze methode maakt geen gebruik van machten. Daardoor is deze beter geschikt als je grotere getallen uit je hoofd wilt converteren, omdat je alleen het subtotaal hoeft te onthouden.
-
Begin met het cijfer uiterst links van het gegeven binaire getal. Verdubbel voor elk volgend cijfer van links naar rechts, het voorgaande totaal en tel dit op bij het huidige cijfer. Bijvoorbeeld, om het getal 1011001 2 naar een decimaal te converteren, nemen we de volgende stappen:
-
1011001 → 0 * 2 + 1 = 1
-
1011001 → 1 * 2 + 0 = 2
-
1011001 → 2 * 2 + 1 = 5
-
1011001 → 5 * 2 + 1 = 11
-
1011001 → 11 * 2 + 0 = 22
-
1011001 → 22 * 2 + 0 = 44
-
1011001 → 44 * 2 + 1 = 89 10
-
Net zoals de methode van het positiestelsel, kan deze methode aangepast worden om vanuit elk talstelsel te converteren naar een decimaal getal. Verdubbeling wordt hier gebruikt omdat het grondtal twee is. Als het gegeven getal een ander grondtal heeft, gebruik dat dan in plaats van 2. Bijvoorbeeld, als het getal een grondtal heeft van 37, verwissel je *2 met *37. Het resultaat zal altijd een decimaal getal zijn (grondtal 10). :)Advertentie
Tips
- Veel oefenen. Probeer eens de binaire getallen 11010001 2 , 11001 2 , en 11110001 2 . Hun decimale equivalenten zijn 209 10 , 25 10 , en 241 10 .
- De rekenmachine die bij Microsoft Windows hoort kan deze conversie ook voor jou doen, maar ben je een programmeur dan is het beter dat je een goed begrip hebt van hoe deze conversie werkt. De opties van deze rekenmachine kun je vinden via het "View" menu en vervolgens "Scientific" (of "Programmer"). Met Linux kun je gebruik maken van galculator .
Waarschuwingen
- Dit kan gebruikt worden voor unsigned binair (alleen positieve getallen), maar niet voor signed, floating point of fixed point.