neuen Datentyp erstellen (natürliche Zahlen 192-bit)?



  • Hallo, ich bin C++-Einsteiger, habe allerdings Erfahrung in Python3. In Python lassen sich, wie es aussieht, beliebig große Zahlen erstellen, solange der Speicher reicht. Wie auch immer, in C++ ist die Zahlengröße bei long long auf 64-bit beschränkt. Nun möchte ich aber, so größenwahnsinnig das auch klingt, mit größeren Zahlen rechnen. Hierfür muss aber anscheinend ein neuer Datentyp erstellt werden. Nun die Frage: wie geht dies? P.S., falls wichtig: OS: Linux, Ubuntu, 32-bit; Compiler: g++; Editor: Kate; neuer Datentyp sollte wenn möglich innerhalb des erstellten Programms erstellt werden, also erst bei Start erstellt und bei Beendigung wieder "gelöscht" werden. Danke im Voraus!


  • Mod

    Nun, entweder selber entwickeln (ist nicht sooo schwer, aber doch zu komplex um es mal eben in einem Forenbeitrag zu erklären) oder jemanden suchen, der dies schon gemacht hat. Mit dem Suchbegriff BigInt wirst du eine Menge mehr oder weniger gute Bibliotheken dafür finden.

    Wenn man es selber machen würde, würde man halt eine Klasse schreiben die genügend Speicherplatz hat (zum Beispiel 24 8-Bit chars) und dann alle Operatoren die Sinn machen passend überladen. Oder wenn man faul ist nur die, die man braucht. Natürlich auch passende Konstruktoren nicht vergessen.



  • Hört sich ganz schön kompliziert an, werd mich ma auf die Suche nach dem BigInt machen^^ -Danke!



  • HecklerUndKoch schrieb:

    neuer Datentyp sollte wenn möglich innerhalb des erstellten Programms erstellt werden, also erst bei Start erstellt und bei Beendigung wieder "gelöscht" werden. Danke im Voraus!

    Du hast hier eine etwas falsche Vorstellung von Datentyp. Ein Klasse in C++ ist nur ein abstaktes Gebilde. Anders als in Python existiert sie zur Laufzeit gar nicht, da gibt es nur noch Maschienencode und der kennt keine Datentypen, geschweige denn Klassen.
    Deswegen ist es regelrecht unsinnig, beim Programmstart eine Klasse / einen Datentyp erstellen und beim Programmende wieder zerstören zu wollen.



  • Hab was gefunden, sieht vielversprechend aus:
    http://www.etp.physik.uni-muenchen.de/kurs/Computing/ckurs/node36.html


  • Mod

    HecklerUndKoch schrieb:

    Hab was gefunden, sieht vielversprechend aus:
    http://www.etp.physik.uni-muenchen.de/kurs/Computing/ckurs/node36.html

    👍 Falls du sowas selber schreiben möchtest sieht das ähnlich aus. Falls du dich dabei auf 192-Bit festlegst, entfällt sogar die dynamische Speicherverwaltung.



  • Hallo,

    GMP geht wohl nicht?


Anmelden zum Antworten