Announcement

Collapse
No announcement yet.

Ganzzahldivision mit sehr großen Integer-Werten

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Ganzzahldivision mit sehr großen Integer-Werten

    Hallo,

    ich habe folgendes Problem in Delphi 4:

    Ich muß den Rest der Ganzzahldivision einer 24-stelligen
    Zahl mit einer 2-stelligen Zahl ermitteln!

    Beispiel:
    Ergebnis := (Zahl1 mod Zahl2); (Zahl1 hat 24 Stellen)

    Wenn ich Zahl1 als "Int64" deklariere, und die Zahl zuweisen will, bekomme ich schon die Compiler-Meldung "Integerkonstante zu lang"

    Deklariere ich Zahl1 als "Extended", kann ich zwar die Zahl
    zuweisen, aber die Funktion "mod" nicht mehr verwenden, da
    diese Integer-Parameter erwartet.

    Wenn ich mit "Trunc" oder "Round" versuche, Zahl1 wieder
    nach "Int64" umzuwandeln, bekomme ich die Exception-Meldung
    "Ungültige Gleitkommaoperation"
    (Kann ja auch nicht gehen, wenn ich die Zahl vorher schon nicht
    zuweisen kann, ich weiß... hab's halt trotzdem mal versucht...)

    Gibt es API-Funktionen, mit denen ich diese Rechen-Operation
    mit einer so großen Zahl durchführen kann??
    Wenn ja, wäre ein Beispiel super!

    Oder hat jemand ne andere Idee?? Mache ich noch was falsch?

    Danke schon mal!

    Branco

  • #2
    Du brauchst eine Bibliothek, die mit LargeInt rechnen kann. Hier gibt's welche:<p>
    http://www.michael-puff.de/dirindex.php?folder=Developer/Delphi/Importe/Hagen_Reddmann/<p>
    GInt: http://www.submanifold.be/<p>
    Ob die aber mit Delphi 4 tun, keine Ahnung.<p>
    Mari
    Schöne Grüße, Mario

    Comment


    • #3
      Danke für den Tipp!

      Ich hatte grade aus den Google-Groups einen ähnlichen Tipp:
      Entsprechende Units zum download gibt es auch unter:
      http://www.delphiforfun.org/Programs/Library/big_integers.htm

      Mit Testprogramm, Testprojekt und div. anderen nützlichen
      Units!

      Funzt bei mir auch ohne Probleme.
      Fast hätte ich es auch alleine hingekriegt, aber so ganz lief
      es halt doch noch nicht...
      Und man muß das Rad ja auch nicht unbedingt neu erfinden...

      Ich werd mir Deine Links trotzdem auch man ankucken!

      Do

      Comment

      Working...
      X