BigInteger



  • Hallo an alle!

    Wie kann ich Zahlen, die größer als die der Standartdatentypen int und long, darstellung und mit ihnen rechnen?

    zb. eine zahl mit 100 Stellen?

    Danke im Voraus!
    mfg Patrik



  • Indem du eine geeignete Bibliothek dafür auswählst und benutzt. Beispielsweise GMP.

    Übrigens schreibt sich Standard mit 'd' am Ende.



  • Noch eine Bibliothek:

    https://mattmccutchen.net/bigint/

    und wie man sie einbinded (Beispiel an VC 2010) geht aber in anderen IDE's genauso gut.

    http://www.youtube.com/watch?v=pLUpI8l0Ddc



  • Hallo zusammen,

    ich habe die Bibliothek die Videonauth gepostet hatte so eingebunden, wie es im Video beschrieben worden ist, jedoch bekomme ich massig Fehler beim compilieren mit Visual C++ 2010...

    1>c:\users\####\desktop\programmauswahl\programmauswahl\bigint\numberlikearray.hh(20): error C2143: Syntaxfehler: Es fehlt '{' vor '<'
    1>c:\users\####\desktop\programmauswahl\programmauswahl\bigint\numberlikearray.hh(20): error C2059: Syntaxfehler: '<'
    1>c:\users\####\desktop\programmauswahl\programmauswahl\bigint\numberlikearray.hh(90): error C2143: Syntaxfehler: Es fehlt '{' vor '<'
    1>c:\users\####\desktop\programmauswahl\programmauswahl\bigint\numberlikearray.hh(90): error C2059: Syntaxfehler: '<'
    1>c:\users\####\desktop\programmauswahl\programmauswahl\bigint\numberlikearray.hh(93): error C2143: Syntaxfehler: Es fehlt '{' vor '<'
    1>c:\users\####\desktop\programmauswahl\programmauswahl\bigint\numberlikearray.hh(93): error C2059: Syntaxfehler: '<'
    1>c:\users\####\desktop\programmauswahl\programmauswahl\bigint\numberlikearray.hh(105): error C2143: Syntaxfehler: Es fehlt '{' vor '<'
    1>c:\users\####\desktop\programmauswahl\programmauswahl\bigint\numberlikearray.hh(105): error C2059: Syntaxfehler: '<'
    1>c:\users\####\desktop\programmauswahl\programmauswahl\bigint\numberlikearray.hh(122): error C2143: Syntaxfehler: Es fehlt '{' vor '<'
    1>c:\users\####\desktop\programmauswahl\programmauswahl\bigint\numberlikearray.hh(122): error C2059: Syntaxfehler: '<'
    1>c:\users\####\desktop\programmauswahl\programmauswahl\bigint\numberlikearray.hh(134): error C2143: Syntaxfehler: Es fehlt '{' vor '<'
    1>c:\users\####\desktop\programmauswahl\programmauswahl\bigint\numberlikearray.hh(134): error C2059: Syntaxfehler: '<'
    1>c:\users\####\desktop\programmauswahl\programmauswahl\bigint\numberlikearray.hh(150): error C2143: Syntaxfehler: Es fehlt '{' vor '<'
    1>c:\users\####\desktop\programmauswahl\programmauswahl\bigint\numberlikearray.hh(150): error C2059: Syntaxfehler: '<'
    1>c:\users\####\desktop\programmauswahl\programmauswahl\bigint\bigunsigned.hh(247): error C2059: Syntaxfehler: ';'
    1>c:\users\####\desktop\programmauswahl\programmauswahl\bigint\bigunsigned.hh(247): error C2143: Syntaxfehler: Es fehlt '{' vor ':'
    1>c:\users\####\desktop\programmauswahl\programmauswahl\bigint\bigunsigned.hh(247): error C2059: Syntaxfehler: ':'
    1>c:\users\####\desktop\programmauswahl\programmauswahl\bigint\bigunsigned.hh(252): error C2061: Syntaxfehler: Bezeichner 'BigUnsigned'

    1>c:\users\####\desktop\programmauswahl\programmauswahl\bigint\biginteger.hh(138): fatal error C1003: Mehr als 100 Fehler gefunden; Kompilierung wird abgebrochen.
    1>Die Erstellung des Projekts "C:\Users\####\Desktop\Programmauswahl\Programmauswahl\Programmauswahl.vcxproj" ist abgeschlossen, build Ziel(e) -- FEHLER.

    Ich habe jetzt schon einige Meldungen herausgenommen, weil das würde hier alles sprengen 😃

    könnt ihr mir da weiterhelfen???

    mfg phoenix


  • Mod

    Interessant ist der erste Fehler. Außerdem solltest du natürlich auch mal den Code zu der fehlerhaften Zeile zeigen.



  • Das ist der erste Fehler...

    1>c:\users\####\desktop\programmauswahl\programmauswahl\bigint\numberlikearray.hh(20): error C2143: Syntaxfehler: Es fehlt '{' vor '<'

    das ist zugehörige Zeile

    template <class Blk>
    

    Ich habe aber nichts an den Dateien geändert... und wie oben schon gesagt, so eingefügt wie es im Video beschrieben wurde.


  • Mod

    😕 Du benutzt nicht zufällig einen C-Compiler?



  • Da mein Programm in C programmiert ist hatte ich es erst mit einem C-Compiler probiert:

    Also per Rechtsklick auf Main.c -> Eigenschaften -> c/c++ -> erweitert und dort Kompilierungsart auf "Als C-Code kompilieren" gesetzt

    Ich habe es aber auch umgestellt und als Standard probiert, jedoch mit den selben Fehlern.


  • Mod

    Das ist kein C, das ist C++. Eine ganz andere Sprache, bloß der Name ist ähnlich. Du musst es mit einem C++-Compiler übersetzen.



  • Danke SeppJ

    ich dachte mit Standard, sollte es auch funktionieren... wenn ich es auf "Als C++-Code kompilieren" setze funktioniert es...

    Danke für deine schnelle Hilfe!!!



  • An deiner Stelle würde ich unbedingt GMP verwenden, da dies viieeeeel schneller ist als die BigInt Bibliothek.



  • Gmp schrieb:

    An deiner Stelle würde ich unbedingt GMP verwenden, da dies viieeeeel schneller ist als die BigInt Bibliothek.

    Kann ich zwar so unterschreiben, das mit der Geschwindigkeit.

    Aber in manchen fällen ist die Bignt einfach wegen ihres Lizenzmodelles zu bevorzugen.


Anmelden zum Antworten