Arithmetische Überschwemmung

Die Begriff-Arithmetik-Überschwemmung oder fließt einfach über hat die folgenden Bedeutungen.

  1. In einem Computer, die Bedingung, die vorkommt, wenn eine Berechnung ein Ergebnis erzeugt, das im Umfang größer ist als das, was ein gegebenes Register oder Speicherelement versorgen oder vertreten können.
  2. In einem Computer, dem Betrag, durch den ein berechneter Wert größer ist als das, das ein gegebenes Register oder Speicherelement versorgen oder vertreten können. Bemerken Sie, dass die Überschwemmung an einer anderen Position gelegt werden kann.

Die meisten Computer unterscheiden zwischen zwei Arten von Überschwemmungsbedingungen. Ein Tragen kommt vor, wenn das Ergebnis einer Hinzufügung oder Subtraktion, den operands und das Ergebnis als nicht unterzeichnete Zahlen betrachtend, das Ergebnis nicht einfügt. Deshalb ist es nützlich, die tragen Fahne nach dem Hinzufügen oder Abziehen von Zahlen zu überprüfen, die als nicht unterzeichnete Werte interpretiert werden. Eine richtige Überschwemmung kommt vor, wenn das Ergebnis das Zeichen nicht hat, dass man von den Zeichen des operands (z.B ein negatives Ergebnis voraussagen würde, wenn man zwei positive Zahlen hinzufügt). Deshalb ist es nützlich, die Überschwemmungsfahne nach dem Hinzufügen oder Abziehen von Zahlen zu überprüfen, die in der Ergänzungsform von two vertreten werden (d. h. sie als unterzeichnete Zahlen betrachtet werden).

Es gibt mehrere Methoden, Überschwemmung zu behandeln:

  1. Design: durch das Auswählen richtiger Datentypen, sowohl Länge als auch unterzeichnet/nicht unterzeichnet.
  2. Aufhebung: Durch die sorgfältige Einrichtung von Operationen und die Überprüfung operands im Voraus ist es möglich sicherzustellen, dass das Ergebnis nie größer sein wird, als es versorgt werden kann.
  3. Das Berühren: Wenn es vorausgesehen wird, dass Überschwemmung vorkommen kann, und wenn es entdeckte und andere getane Verarbeitung zufällig. Beispiel: Es ist möglich, zwei Zahlen jedes zwei Bytes breite Verwenden gerade eine Byte-Hinzufügung in Schritten hinzuzufügen: Fügen Sie zuerst hinzu, dass die niedrigen Bytes dann die hohen Bytes hinzufügen, aber wenn es notwendig ist, aus den niedrigen Bytes zu tragen, ist das arithmetische Überschwemmung der Byte-Hinzufügung und seiner notwendig, um die Summe der hohen Bytes zu entdecken und zu erhöhen. Zentraleinheiten haben allgemein eine Weise, das zu entdecken, um Hinzufügung von größeren Zahlen zu unterstützen, als ihre Register-Größe, normalerweise mit einem Status gebissen hat.
  4. Fortpflanzung: Wenn ein Wert zu groß ist, um versorgt zu werden, kann er ein spezieller Wert zugeteilt werden, der anzeigt, dass Überschwemmung vorgekommen ist und dann die ganze aufeinander folgende Operationsrückkehr dieser Fahne-Wert hat. Das ist nützlich, so dass das Problem diesmal am Ende einer langen Berechnung aber nicht nach jedem Schritt überprüft werden kann. Das wird häufig in der Schwimmpunkt-Hardware genannt FPUs unterstützt.
  5. Das Ignorieren: Das ist der grösste Teil der einheitlichen Methode, aber sie gibt falsche Ergebnisse und kann eine Sicherheit eines Programms in Verlegenheit bringen.

Die Abteilung durch die Null ist nicht eine Form der arithmetischen Überschwemmung. Mathematisch ist die Abteilung durch die Null innerhalb von reals ausführlich unbestimmt, wenn das Problem Null ist, die durch die Null geteilt ist, und entweder als die positive oder als negative Unendlichkeit abhängig von den Zeichen der Zahlen beteiligt definiert wird oder unbestimmt ist.

Überschwemmungsprogrammfehler

Arithmetische Überschwemmung ist ein ziemlich häufiger Grund von Softwaremisserfolgen. Solche Überschwemmungsprogrammfehler können hart sein, zu entdecken und zu diagnostizieren, weil sie sich nur für sehr große Eingangsdateien äußern können, die mit geringerer Wahrscheinlichkeit in Gültigkeitserklärungstests verwendet werden.

Zum Beispiel war eine unbehandelte arithmetische Überschwemmung in der Motorsteuersoftware die primäre Ursache des Unfalls des Jungfrau-Flugs der Ariane 5 Rakete. Die Software war ohne Programmfehler betrachtet worden, seitdem sie in vielen vorherigen Flügen verwendet worden war; aber jene verwendeten kleineren Raketen, die kleinere Beschleunigungen erzeugt haben als Ariane 5's.

Siehe auch

  • IEEE 754
  • Überschwemmung der ganzen Zahl
  • Arithmetischer Unterlauf

Bereichssendungsverschiebung / Arithmetische Verschiebung
Impressum & Datenschutz