Eigene Datentypen entwickeln?
-
Hi
ich brauche einen viel größeren integer!
Wie schreibt man einen eigenen Datentyp? Hat da jemand ein beispiel oder besser noch nen Tutorial?
Ich brauche halt ein int mit standart operatoren in das ich viel viel größere zahlen legen kann

THX
Dagsta
-
du definierst dir eine Klasse bigInt und schreibst dir die nötigen Rechen-Operationen dann selber. Der Anfang könnte z.B. so aussehen:
class bigInt { public: // Konstruktoren: bigInt(int i=0); //von int-Wert (und Default) bigInt(const bigInt& i); //Copy //Zuweisung: bigInt& operator=(int i); bigInt& operator=(const bigInt& other); //kombinierte Operatoren: bigInt& operator+=(const bigInt& other); ... private: //interne Daten }; bigInt operator+(const bigInt& l, const bigInt& r) { return bigInt(l)+=r; } ...(das kann am Ende genauso eingesetzt werden wie ein normales int - vorausgesetzt du machst in den Operatoren das richtige)
-
und wo ist da der speicher für die größere variable?
müsste da nicht irgentwo speicher belegt werden in dem meine daten stehen?
-
-dagsta schrieb:
müsste da nicht irgentwo speicher belegt werden in dem meine daten stehen?
Den kannst du dort hinpacken, wo ich "interne Daten" eingetragen habe (ich weiß ja nicht, wie groß bei dir die Zahlen werden sollen).
-
was willst du denn damit machen?
vielleicht reicht auch schon ein
long long longvariable;da hast du 8 byte.
da bekommst du zahlen bis 18446744073709551616 unter.
-
weder long long noch sonstige int64 sind im c++ standard, sollt ma schon dazusagen, kann sehr relevant sein
-
dagsta schrieb:
ich brauche einen viel größeren integer!
Hallo Dagsta,
Hier findest Du noch einen Ansatz. In meinem Posting unter dem Taschenrechner ist ein Entwurf für eine Klasse Zahl.
Gruß
Werner
-
http://www.swox.com/gmp/ die gmp hat klassen für beliebig froße zahlen