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