05.11.2016 Views

computer-wetenschap-bewerkt

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Hoofdstuk 54<br />

Overflow (informatica)<br />

In de informatica is er sprake van overflow als het resultaat van een berekening te groot is om opgeslagen te worden<br />

in het betrokken register of geheugenadres. Er wordt onderscheid gemaakt tussen beheerste overflow, waarbij<br />

er een carry optreedt als het resultaat van een optelling of een aftrekking van getallen van een unsigned type niet<br />

gerepresenteerd kan worden. Door de carryvlag af te vragen kan nagegaan worden of er overflow geweest is. Echte<br />

overflow treedt op als het resultaat van een berekening een teken heeft dat niet overeenkomt met het verwachte teken,<br />

zoals wanneer het optellen van twee positieve getallen een negatief resultaat blijkt te geven. Het is daarom nuttig de<br />

overflowvlag te controleren na het optellen of aftrekken van getallen in two’s complement representatie.<br />

Er zijn verscheidene methoden om met overflow om te gaan:<br />

1. Ontwerp: door de correcte datatypen te gebruiken en rekening te houden met de optredende tekens en grootte<br />

van de getallen.<br />

2. Vermijden: door zorgvuldig tevoren de bewerkingen na te gaan en met de volgorde rekening te houden kan<br />

vermeden worden dat overflow optreedt.<br />

3. Afhandelen: als verwacht wordt dat overflow zal optreden, kan het geconstateerd worden en op de juiste wijze<br />

afgehandeld worden.<br />

4. Voortplanting: als een resultaat te groot is om opgeslagen te worden, kan er een speciale waarde aan toegekend<br />

worden om aan te geven dat overflow is opgetreden, waarna bij alle volgende bewerkingen deze waarde behouden<br />

blijft. Zodoende kan aan het einde van een lange berekening geconstateerd worden dat ergens overflow<br />

geweest is en hoeft niet bij elke stap afzonderlijk te worden gecontroleerd. Dit wordt vaak door Floating Point<br />

Hardware (FPU) ondersteund.<br />

5. Negeren: Vaak ook wordt er geen rekening met overflow gehouden en het optreden ervan eenvoudig genegeerd.<br />

Dit kan natuurlijk onjuiste resultaten opleveren en tot een crash van het programma leiden.<br />

54.1 Zie ook<br />

• IEEE 754<br />

105

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!