Überlauf

Aus EINI
Version vom 16. Mai 2016, 00:08 Uhr von Kristin (Diskussion | Beiträge)

(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Wechseln zu: Navigation, Suche

Ein Überlauf oder Übertrag ist ein Phänomen, das in arithmetischen Schaltungen, wie die der Recheneinheit eines Computers, auftreten kann. Es tritt immer dann auf, wenn durch eine arithmetische Operation der Wertebereich eines Datentyps überschritten wird. Die Binärrepräsentation der Zahl zeigt dadurch ein falsches Ergebnis an.

Auftreten

Als Beispiel seien hier zwei Zahlen, repräsentiert durch ein einzelnes, nicht vorzeichenbehaftetes Byte (Bitfolge), gegeben:

1101 1111
0010 1000

Addiert man diese beiden Zahlen mithilfe schriftlicher Addition, so erhält man folgende Werte (Mit Ü als Übertrag):

    1101 1111 (223)
+   0010 1000 ( 40)
Ü 1 1111 0000
-------------
  1 0000 0111 (263)

Diese Zahl kann jedoch nicht mehr durch ein Byte repräsentiert werden, da sie aus neun Bits besteht. Daher speichert eine Maschine, die dieses Ergebnis berechnet, nur die letzten acht Bits als Ergebnis ab. Das Ergebnis der Berechnung ist also 7 anstatt 263. Das Auftreten eines Übertrags in einem Bit, das nicht mehr durch den vorgegebenen Datentyp repräsentiert werden kann, nennt man einen Überlauf.

Zweierkomplement

Dieses Phänomen tritt auch auf, wenn man zwei vorzeichenbehaftete Zahlen miteinander addiert. Die obere Berechnung wäre im Zweierkomplement also die Addition von -33 und 40. In diesem Fall sorgt der Übertrag des achten Bits für die korrekte Berechnung (ein Vorteil des Zweierkomplements bei der Addition einer positiven Zahl mit einer negativen Zahl).

Problematisch wird die Addition (egal in welcher Zahlendarstellung) zweier positiver Zahlen:

    0101 1101 ( 93)
+   0110 1010 (106)
Ü   1111 0000
-------------
    1100 0111 (-57)

In diesem Fall tritt ein Überlauf in den negativen Zahlenbereich der Darstellung auf. Anstatt eine große positive Zahl zu berechnen, liefert das Ergebnis (in der entsprechenden Zahlendarstellung) eine negative Zahl.