AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Suchfunktion Ergebnis der Suchanfrage

Ergebnis der Suchanfrage


Datum des Suchindex: Heute, 15:32

Parameter dieser Suchanfrage:

Suche in Thema: Überlauf bei Berechnung erkennen
Suche alle Beiträge, die von "gammatester" geschrieben wurden
• Suchmethode: "Suche nach allen Begriffen"
• Nach Datum (firstpost) sortiert
• Zeige Treffer als Beiträge
Zeige 4 von insges. 4 Treffern
Suche benötigte 0.011s

Es liegen Ergebnisse in folgenden Bereichen vor:

  • Forum: Programmieren allgemein

    Re: Überlauf bei Berechnung erkennen

     
      by gammatester, 23. Mai 2008
    Es muß ja nicht alles in ASM sein. Vielleicht nur für das werthöchste DWORD. Ich verwende zB folgende Funktion (die man notfalls noch optiomieren kann):


    {---------------------------------------------------------------------------}
    function add32_ovr(x,y: longint; var z: longint): boolean;
    {-add z=x+y with overflow detection}
    var
    overflow: boolean;
    begin
    asm
  • Forum: Programmieren allgemein

    Re: Überlauf bei Berechnung erkennen

     
      by gammatester, 22. Mai 2008
    Das Carry kann doch nicht negativ sein! Alle 32-Bit-Teile (bis auf das Werthöchste) müssen doch unsigned berechnet werden. Das Carry kann bei Additionen nur 0 oder 1 sein.

    Deine Interpretation von Q+ ist übrigens nicht richtig. Delphi-Hilfe: The $Q directive controls the generation of overflow checking code. In the {$Q+} state, certain integer arithmetic operations (+, -, *, Abs, Sqr, Succ,...
  • Forum: Programmieren allgemein

    Re: Überlauf bei Berechnung erkennen

     
      by gammatester, 22. Mai 2008
    Hier ein Stück Code, das Overflow detektiert für longints. Ein Problem ist: wenn Delphi-Overflowcheck an ist, darf x+y+c nicht berechnet werden, wenn ovr=true ist.

    Weiter solltest Du T.Hi auswerten nach der Schleife, wenn's <>0 ist hast Du mit Sicherheit einen Overflow.

    var
    x,y,c,z: longint;
    ovr: boolean;
    begin
    x := $3FFFFFFF;
    y := $3FFFFFFF;
  • Forum: Programmieren allgemein

    Re: Überlauf bei Berechnung erkennen

     
      by gammatester, 22. Mai 2008
    Durch Deine Beitrage im anderen Thread nehme ich an, daß Deine TBigInt eine fixe Maximalgröße haben, sonst würde sich das Overflowproblem anders stellen.

    Ohne Definition der Typen kann man allerding nix genaues sagen.

    Z.B. verstehe ich das 'Geeiere' mit LongInt(Data) < 0, Abs(Self) >/< Abs(i) nicht. Insbesondere Data and $80000000 <> 0 sollte doch das gleiche sein wie LongInt(Data) < 0 ???...


URL zu dieser Suchanfrage:

https://www.delphipraxis.net/dp_search.php?do=usersearch&search_username=gammatester&search_exact_username=1&search_sortby=dateline&search_resulttype=post&search_matchmode=0&searchthreadid=114281
Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:49 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz