Overflow (informatica)

In de informatica is er sprake van overflow als het resultaat van een berekening te groot is om opgeslagen te worden in het betrokken register of geheugenadres.…

In de informatica is er sprake van overflow als het resultaat van een berekening te groot is om opgeslagen te worden in het betrokken register of geheugenadres. Er wordt onderscheid gemaakt tussen beheerste overflow, waarbij er een carry optreedt als het resultaat van een optelling of een aftrekking van getallen van een unsigned type niet gerepresenteerd kan worden. Door de carryvlag af te vragen kan nagegaan worden of er overflow geweest is. Echte overflow treedt op als het resultaat van een berekening een teken heeft dat niet overeenkomt met het verwachte teken, zoals wanneer het optellen van twee positieve getallen een negatief resultaat blijkt te geven. Het is daarom nuttig de overflowvlag te controleren na het optellen of aftrekken van getallen in two's complement representatie.

Er zijn verscheidene methoden om met overflow om te gaan:

  1. Ontwerp: door de correcte datatypen te gebruiken en rekening te houden met de optredende tekens en grootte van de getallen.
  2. Vermijden: door zorgvuldig tevoren de bewerkingen na te gaan en met de volgorde rekening te houden kan vermeden worden dat overflow optreedt.
  3. Afhandelen: als verwacht wordt dat overflow zal optreden, kan het geconstateerd worden en op de juiste wijze afgehandeld worden.
  4. Voortplanting: als een resultaat te groot is om opgeslagen te worden, kan er een speciale waarde aan toegekend worden om aan te geven dat overflow is opgetreden, waarna bij alle volgende bewerkingen deze waarde behouden blijft. Zodoende kan aan het einde van een lange berekening geconstateerd worden dat ergens overflow geweest is en hoeft niet bij elke stap afzonderlijk te worden gecontroleerd. Dit wordt vaak door Floating Point Hardware (FPU) ondersteund.
  5. Negeren: Vaak ook wordt er geen rekening met overflow gehouden en het optreden ervan eenvoudig genegeerd. Dit kan natuurlijk onjuiste resultaten opleveren en tot een crash van het programma leiden.

Zie ook

Content Disclaimer

Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.

  1. The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
  2. There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
  3. It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
  4. Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
  5. Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.