Einzelnen Beitrag anzeigen

gammatester

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

AW: Überlauf bei Rechenoperation mitbekommen

  Alt 4. Apr 2014, 13:47
Das hängt von den verwendeten Operationen und Datentypen ab. Ohne ASM ist es im allgemeinen schwierig. Ich verwende zB für den für mich interessanten Fall der Überlauferkennung bei signed 32-Bit-Addition:

Delphi-Quellcode:
function add32_ovr(x,y: longint; var z: longint): boolean;
  {-Add z=x+y with overflow detection}
begin
  {See Hacker's delight, Ch 2-12}
  {$ifopt Q+}
    z := longint(int64(x)+y);
  {$else}
    z := x+y;
  {$endif}
  add32_ovr := ((z xor x) and (z xor y)) < 0;
end;
Hinweise für einige Operationen bei http://www.hackersdelight.org/ oder http://graphics.stanford.edu/~seander/bithacks.html
  Mit Zitat antworten Zitat