1.3 Binaire getallen optellen
Je hebt op de basisschool geleerd hoe je grote decimale getallen moet optellen.
Je zet ze onder elkaar, en dan begin je achteraan.
Neem bijvoorbeeld 538 + 764
Begin met 8 + 4, dat is 12, dus 2 opschrijven en 1 onthouden.
Dan 1 (onthouden) + 3 + 6, dat is 10, dus 0 opschrijven en 1 onthouden.
Tenslotte 1 (onthouden) + 5 + 7, dat is 13, dat opschrijven.
Dus 538 + 764 = 1302
Binaire getallen tel je op dezelfde manier op. Maar dan moet je er om denken dat je alleen nullen en enen mag gebruiken.
Dus 1 + 1 is 2, maar dat schrijf je binair als 10
En 1 + 1 + 1 is 3, maar dat schrijf je binair als 11
Nog een voorbeeld 10111011 + 01010101
Begin achteraan met 1 + 1, dat is 10 (geen 2!), dus 0 opschrijven en 1 onthouden.
Dan de op één na laatste: 1 (onthouden) + 1 + 0, dat is 10, dus 0 opschrijven en 1 onthouden.
Dan de op twee na laatste: 1 (onthouden) + 0 + 1, dat is 10, dus 0 opschrijven en 1 onthouden.
Dan de op drie na laatste: 1 (onthouden) + 1 + 0, dat is 10, dus 0 opschrijven en 1 onthouden.
Dan de op vier na laatste: 1 (onthouden) + 1 + 1, dat is 11, dus 1 opschrijven en 1 onthouden.
Dan de op vijf na laatste: 1 (onthouden) + 1 + 0, dat is 10, dus 0 opschrijven en 1 onthouden.
Dan de op zes na laatste: 1 (onthouden) + 0 + 1, dat is 10, dus 0 opschrijven en 1 onthouden.
Tenslotte de voorste: 1 (onthouden) + 1 + 0, dat is 10, dus 10 opschrijven.
Dus 10111011 + 01010101 = 100010000
Bij het voorbeeld hierboven zag je dat er twee bytes werden opgeteld. Het antwoord bestond uit 9 bits, en past dus niet in een byte.
Als er gewerkt wordt met getallen van een byte dan levert dat een probleem op, dat wordt overflow
genoemd.
Een programma werkt vaak met een vast aantal bytes voor gehele getallen. Meestal wordt er meer dan één byte voor
een getal gebruikt, want anders kunnen er geen getallen groter dan 255 worden gebruikt.
Vaak worden er 4 bytes voor getallen gebruikt. Als er dan twee getallen worden opgeteld, en het resultaat past niet in 4 bytes, dan
volgt er een foutmelding en dan heb je overflow.