Überlauf
Ein Überlauf ist ein Phenomän, welches in arithmetischen Schaltungen, wie die der Recheneinheit eines Computers, auftreten kann. Er geschieht immer dann, wenn durch eine arithmetische Operation der Zahlenbereich eines Datentyps überschritten wird. Die Binärrepresentation der Zahl zeigt dabei ein falsches Ergebnis an.
Auftreten
Als Beispiel gegeben seien hier zwei Zahlen, repräsentiert durch ein einzelnes, nicht vorzeichenbehaftetes Byte, 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, weswegen eine Maschine, die dieses Ergebnis berechnet, nur die letzten 8 Bits als Ergebnis abspeichert. Das Ergebnis der Berechnung ist also 7 anstatt 263. Das auftreten eines Übertrags in einem Bit, welches nicht mehr durch den vorgegebenen Datentyp repräsentiert werden kann, nennt man einen Überlauf. Die Werte der Berechnung "laufen über" und beginnen wieder bei der kleinsten repräsentierten Zahl.
Dieses Phenomän 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 (Überlauf) des 8. Bits für die korrekte Berechnung (ein Vorteil des Zweierkomplements bei der Addition einer positiven Zahl auf eine negative 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.