Einzelnen Beitrag anzeigen

gammatester

Registriert seit: 6. Dez 2005
999 Beiträge
 
#2

AW: Int64-Überlauf erkennen / Registerabfrage

  Alt 11. Aug 2011, 11:27
Knifflig. Wenn Du überhaupt eine Chance haben will, mußt Du wahrscheinlich Deine ganzen Rechnungen in elementare Schritte aufteilen und nach jeden Schritt prüfen. Beispiel:
Delphi-Quellcode:
var
  x,y: int64;
begin
  x := $7fffffffabcd1234;
  y := x + $7890abcd; // Overflow erkennbar
  y := ((x+ $7890abcd) - $7890abcd) + 1; //**
end;
In ** ist nach der Zuweisung kein Overflow erkennbar, effektiv ist das ja y := x +1. Aber es sind ja eigentlich zwei Overflows aufgetreten.
  Mit Zitat antworten Zitat