größere datentypen erstellen
-
hallo
ist es in c++ möglich, einen größeren ganzzahligen datentyp zu erstellen. der long typ hat ja zB. "nur" 4 byte, ist es daher möglich einen eigenen ganzzahligen datentyp zu deffinieren der zum beispiel 8 byte gross ist?? und wenn ja könntet ihr ein codebeispiel angeben.mfg acman

-
ganz dumme idee: erstell ne eigene klasse, mit 2 long ints, und speicher die grosse zahl dann in 2 long ints ab... oder in 3 oder 4, je nachdem wie gross die sein soll...
-
Klar ist möglich. Hab ich an der Penne mal in Pascal gemacht

Die Frage ist halt, wie groß, welche performance, und welchen Aufwand du reinstecken willst. Die ganzen Rechenoperationen mußt du halt selbst definieren.
Ein simpler Ansatz für beliebig große Ganzzahlen wäre ein string - ein zeichen = eine Ziffer, und du implementierst erstmal die Grundrechenarten: + - * / .
Für bessere performance wäre es dann besser, auf ein Integer-Array auszuweichen und die 32 bit auch als solche zu nuten, nur daß man dann für die Rechenoperaitonen etwas mehr gehirnschmalz reinstecken muß.
Und wenn du dan noch Gleitkomma zulassen willst... ist ein nettes Projekt

-
Für 64bittige Integer bieten einige Compiler einen eigenen Datentyp (z.B. __int64 bei VC). Für noch größere (unbegrenzt große) Zahlen gibt es spezielle Bibliotheken, such mal im Forum danach.
-
Zum einen die meisten Compiler haben inzwischen eine 64Bit int Datentyp, leider gibts dafür keinen standard.
Und falls das nicht reicht such mal in google nach Arbitrary Precision Library.
Oder machs wie REXX (eine Scriptsprache) unter VMS. Die sind hingegangen und haben Zahlen in Strings
gespeichert und dann mit den Strings gerechnet.Hab damals damit mal Fakultäten exact ausgerechnet. Der Ergebnisstring war zum Schluß 8 MB lang, zum Ausdrucken wären das ca 900 Seiten auf großen Computerpapier (132 Zeichen * 72 Zeilen) gwesen.
Über die Rechenzeit brauchen wir hier nicht zu reden.