Iemand die een beetje verstand van computers heeft weet het wel: een computer werkt met bits. Maar wat is dat nou precies? Dat gaan we hier uitleggen!
Bij de geschiedenis les is je (waarschijnlijk) geleerd dat er vroeger nog met handen en voeten geteld werd. Op een gegeven moment kwamen er getallen. De romeinen bijvoorbeeld, telden met letters. Ze konden alleen in gehelen werken. Als het om halven ging werkte dat natuurlijk niet. Na verloop van tijd deed de nul zijn introductie. Dat was nieuw, want er was tot dan toe nog niemand die een symbool aan 'niets' had toegewezen. Toen duurde het niet zolang meer voordat het decimale stelsel werd ontwikkeld: dus niet alleen hele, maar ook halve getallen, en zelfs nog veel complexer.
Het decimale stelsel werkte met het 10-cijferige systeem, van 0 tot 9. Maar een wetenschapper kwam op het idee dat mechanische apparaten veel makkelijker met maar 2 cijfers werkte, namelijk 0 of 1, aan of uit. Dat is het binaire systeem, alleen met 0-en en 1-en. Het duurde erg lang voordat andere wetenschappers ermee aan de slag gingen. Maar uiteindelijk bleek het wel erg handig. Een van de eerste grote computertoepassingen was het decoderen van Duitse berichten door een Engelse computer in de 2e wereldoorlog. De computer was (mede door het binaire stelsel) in staat de berichten snel te decoderen.
1-en en 0-en zijn makkelijk omdat een computer hier erg makkelijk mee kan rekenen. Hoewel het misschien stom lijkt, het optellen, aftrekken, vermenigvuldigen en dergelijke gaan er erg snel mee. Hoe dat precies in zijn werk gaat kun je hieronder lezen. Ook omdat ze erg makkelijk door te geven zijn, omdat aan en uit nu eenmaal eenvoudig zijn op te slaan, of via een telefoonlijn ofzo te transporteren.
Aan de hand van een voorbeeld zal ik proberen uit te leggen hoe je het makkelijkst om kan rekenen. Hiervoor kun je uiteraard een rekenmachine met een speciaal programma gebruiken, maar dan snap je nog niet hoe het werkt. Stel je voor, een balk met 8 lampjes, met daarop van onder naar boven genummerd: 1, 2, 4, 8, 16, 32, 64, 128, zoals hiernaast. Alle lampjes staan uit. Dit is gelijk met het decimale cijfer (dus een 'gewoon' cijfer) 0, want er staan geen lampjes aan. Als u nu het lampje bij de 1 aanzet, is dit gelijk met het getal 1. Als u nu het lampje 1 uitzet, en het lampje 32 aan, dan is dit 32. Maar als u nu lampje 32 en lampje 1 aanzet, dan is dit samen 33! Zo kunt u verdergaan. Als u nu alle lampjes aanzet, is dit samen 255.
Ditzelfde gebeurt in uw computer, maar dan gaan er niet lampjes aan, maar schakeltjes aan of uit, of een stroompje of geen stroomje. Als u bijvoorbeeld lamje 1 aan, 2 uit, 3 aan, 4 aan en 5 uit hebt staan kunt u dit doorseinen als stroompje, even niets, stroompje, stroompje, even niets. Ditzelfde gebeurt in uw computer, maar dan veel sneller! Als we dit op een scherm neerzetten zeggen we niet aan, uit, aan etc. maar dit schrijven als 10110. Het balkje met lampjes van daarnet is een makkelijke manier om om te rekenen. Bijvoorbeeld: 10111011 is:
Nu kunt u gewoon de getallen eronder bij elkaar optellen! Dus 1+4+8+16+64+128, en dat is 221. U kunt het ook wetenschappelijk, zonder het balkje uitrekenen. Dat doet u met machten. Als het laatste lampje (dus de laatste 1 of 0) aanstaat (dus 1 is) dan gebruikt u 20. Als het op 1 na laatste lampje aanstaat gebruikt u 21, bij de volgende 22. 1001 wordt dus 23+20, en dat is 9.
Mocht je snel een aantal getallen willen omrekenen, dan kun je onze omrekentool gebruiken
Een computer kan razendsnel rekenen met het binaire stelsel, maar hoe werkt dat nu precies? We pakken even een eenvoudige optelsom: 2+6. We rekenen dat even om naar binair: dat wordt 10+110. We beginnen achteraan: de getallen eindigen allebei op 0. 0+0=0, dus dat laten we zo. Dat betekend dat het laatste getal van de uitkomst (vanaf achteraan) een 0 is. Het 2e getal van achteraan is in beide gevallen 1, 1+1=2. Als we 2 omrekenen naar het binaire stelsel krijgen we 10. Dat betekend dat het 2e getal van onze berekening (van achteren) ook 0 is. Pakken we daarna het 3e getal van achteren, dan is dat 1+0=1. We hebben echter nog die 10 van de vorige som, dus we krijgen 1+0+1=2. Binair gezien is 2 nog steeds 10. Als we dit achter elkaar zetten krijgen we 1000. Als we dat weer naar decimaal omrekenen krijgen we 8! Dat klopt als een bus.
Nog een voorbeeld om het te verduidelijken:
Som: 53 + 22, binair 110101 + 10110
1+0=1, laatste getal: 1
0+1=1, volgende getal: 1, subtotaal: 11
1+1=2 => 10, volgende getal: 0, subtotaal: 1011
0+0+1=1, volgende getal: 1, subtotaal: 1011
1+1=2 => 10, volgende getal: 0, subtotaal: 101011
1+1=2 => 10, volgende getal: 0, subtotaal: 1001011
1=1, volgende getal: 1, subtotaal: 1001011, decimaal 75
Na een optelling ook nog een aftrekking. We beginnen nu vooraan in plaats van achteraan:
Som: 58 - 45, binair 111010 - 101101
1-1=0, eerste getal: 0
1-0=1, volgende getal: 1, subtotaal: 01
1-1=0, volgende getal: 0, subtotaal: 010
Hieronder wordt het een beetje lastig, omdat we te maken krijgen met negatieve getallen. Om dat op te lossen moeten we een paar getallen die we al neergezet hebben "wegsnoepen". We hebben op dat moment 100 staan, en daar moet er eentje vanaf. We krijgen dan: 100 - 1 = 011.
0-1=-1, volgende getal: -1, subtotaal: 0011
1-0=1, volgende getal: 1, subtotaal: 00111
0-1=-1, volgende getal: -1, subtotaal: 001101, decimaal: 13
Hierboven hebben we steeds gerekend zoals een computer dat doet: bit voor bit bij elkaar optellen. Mocht je ooit een binaire som willen oplossen met een gewone rekenmachine, dan is er een snellere manier: 10+110=120, decimaal gezien. Vroeger heb je misschien wel geleerd met een abacus te werken. Als je dan meer dan 9 kraaltjes op een rij had moest je alle kraaltjes terugschuiven en er eentje op de volgende rij zetten. Dat doen wij hier ook: 120 kan niet binair, omdat 2 niet bestaat. We beginnen weer achteraan: die laatste 0 kan blijven staan. De 2 daarvoor kan niet, dat wordt 10. Dat tellen we er weer bij op, dat wordt 200. Ook dat kan niet, 2 wordt 10, dus 1000.
Om het te verduidelijken geef ik hier nog een sommetje:
Som: 53 + 26, binair 110101 + 11010
110101 + 11010 = 121111
Als we de laatste 2 eruit halen krijgen we 201111
Als we de daaropvolgende 2 eruit halen krijgen 1001111, decimaal: 79
Ook die klopt!
Je kunt met de hierboven uitgelegde rekenmethode ook vermenigvuldigen. Ook hier moeten we de getallen "gewoon" met elkaar vermenigvuldigen en daarna de 2-en eruit halen. Een voorbeeld:
2*2=4, binair 10*10=100
Binair 100 is decimaal 4! Dat klopt!
Een ander voorbeeld:
3*3=9, binair 11*11=121
121, de 2 eruit halen wordt 201
201, de 2 eruit halen wordt 1001
Binair 1001 is decimaal 9! Dat klopt!
Je kunt zo ook binair aftrekken. Dit is misschien iets moeilijker te begrijpen. Bij het optellen kregen we namelijk een aantal keer een 2, die "eruit moest". Bij het aftrekken krijgen we echter af en toe een 9. Dit heeft te maken met de negatieve getallen die we kregen bij het hierboven uitgelegde "langzame binaire aftrekken". Hier een voorbeeld om het te verduidelijken:
6-2=4, binair 110-10=100
Binair 100 is decimaal 4! Dat klopt!
Een ander voorbeeld:
4-2=2, binair 100-10=90
Die 9 staat in het deicmale stelsel voor 10-1, in het binaire voor 2-1, dus moeten we de 9 omzetten naar 1
90 wordt 10
Binair 10 is decimaal 2! Dat klopt!
Helaas kun je niet op de hierboven beschreven manier delen! Dat zul je toch echt aan de computer moeten overlaten.
Hopelijk was het duidelijk!