Skip to main content

Was ist ein Ganzzahlüberlauf?

Ganzzahlüberlauf bezieht sich auf das Phänomen, das in bestimmten Computerdatentypen auftritt, bei denen ihre Vorzeichen von positiv auf negativ wechseln oder umgekehrt, wenn sie die Enden ihrer anwendbaren Bereiche erreichen.In Computerbereichen haben Ganzzahl -Datentypen kreisförmige Bereiche, und wenn sie ein Ende ihres Reichweite erreichen, bewegen sie sich sofort zum anderen Ende ihres Reichweite.Dies wird auch als Integer -Überlauf bezeichnet.

Eine signierte Ganzzahl kann einen Wertebereich von -2 31 bis (2 31 ) - 1. Diese Ganzzahl kann keinen Wert von (-2 31 ) - 1 haben;Die nächste Zahl, zu der sie zunimmt, befindet sich am anderen Ende seines Bereichs: (2 31 - 1).Die Veränderung von negativ zu positiv am Ende seines Bereichs ist ein Beispiel für den Überlauf.Aus dem gleichen Grund kann eine Ganzzahl keinen Wert von 2 31 haben;Dieser Wert würde stattdessen zum anderen Ende seines Bereichs wechseln und -2 31

werden.

Dieser Überlauf hat bei der Programmierung erhebliche Konsequenzen.Ein Array kann nur so viele Indizes enthalten, wie es der Ganzzahltyp zulässt, und negative Indizes zählen nicht.Wenn ein Programmierer versucht, ein Array zu erstellen, das größer als der Ganzzahltyp zulässt, können erhebliche Speicherfehler auftreten, da der Ganzzahlüberlauf zu einem negativen Index führen würde.Dies ist besonders gefährlich in Sprachen, die keine explizite Grenzen für Arrays haben, wie C ++.

Wenn ein ganzzahliger Überlauf auftritt, können verwandte Arten von Überlauf wie Pufferüberlauf, Haufen Überlauf und Stackpufferüberlauf auftreten.In all diesen Fällen überfordert der Ganzzahlüberlauf die Speicherstrukturen mit mehr Daten, als diese Strukturen denkbar halten können.Diese Überläufe in einfachen Programmen machen nicht oft viel mehr als einen ungültigen Lese- oder ungültigen Schreibfehler.Die Manipulation dieses Problems durch Hacker kann jedoch Speicherfehler entwickeln, die schwerwiegendere Probleme verursachen können.

In den meisten einfachen Programmen ist ganzzahliger Überlauf kein großes Problem.Die Grenzen des Ganzzahltyps sind so groß genug, dass das Überlaufproblem nicht ins Spiel kommt, es sei denn, viele Daten werden gleichzeitig behandelt.In einigen Fällen kann der Überlauf wie im Fall von Inkrementierungszählern unter Verwendung eines größeren Datentyps mit einem größeren Bereich gemindert werden.Der größere Datentyp könnte theoretisch schließlich auf das gleiche Überlaufproblem stoßen, aber wenn die Datentype größer werden, werden die Wahrscheinlichkeit, dass dies dies tut.Jeder Integer -Datentypenbereich ist mindestens doppelt so groß wie das nächste kleinste. Daher gibt es ausreichend Platz für zusätzliche Daten.