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.