ich würde mir gerne einen Datentyp schreiben, der unendlich
große Ganzzahlen speichern kann.
Fein, ist bloß die Frage, wie du unendlich definierst
Wenn du das so meinst, wie ich es verstehe, dann gibt es keinen Computer auf dieser Welt, der diese Zahl speichern kann.
Vergiss nicht die Tragweite von „unendlich“!!
Ich weiß aber nicht, wie ich da vorgehen soll.
Ich will, das die Operationen genauso einfach sind wie bei
integern.
Am Besten ist also, wenn du dir eine Klasse bastelst, die intern die einzelnen Stellen einer (sehr großen) Zahl in einem Array hält. Dafür die Rechenoperationen zu implementieren ist eine machbare Sache, wird bei Division aber bissel knifflig.
ich würde mir gerne einen Datentyp schreiben, der unendlich
große Ganzzahlen speichern kann.
Also unendlich ist, wie schon beschrieben, nicht drin.
Wenn wir einmal grosszügig annehmen, dass du 1GB freien Datenspeicher, das Programm braucht zusätzlich noch Speicher, hast dann darf eine Zahl höchstens 1/3 GB Speicherplatz benötigen (fast jede Rechenoperation benötigt 2 Operanden und ein Resultat).
Ich weiß aber nicht, wie ich da vorgehen soll.
Ich will, das die Operationen genauso einfach sind wie bei
integern.
Ganz einfach: nimm mal Papier und Bleistift und dokumentiere jeden einzelnen Rechenschritt. Mit dieser Methode kannst du ja mit beliebig grossen Zahlen rechnen, sofern du genug Papier und Bleistifte hast und eine göttliche Lebenserwartung.
Genauso wie das mit Papier und Bleistift machst kannst du es dann auch dem Computer beibringen.
Mir ist schon klar, was unendlich bedeutet, so blöd bin ich nun auch nicht. Aber im Vergleich mit den mitgelieferten Datentypen kann man das, was ich brauche als unendlich bezeichnen.
Denn als Informatikstudent hat man mit ganz anderen Dimensionen zu tun. Da benutzt man z.B. einen 1024 Bit Exponenten für RSA Verschlüsselungssysteme. Und dagegen sind die Standardtypen ein Fliegenklecks.
Insofern haben mir die Antworten leider nicht geholfen.
Mir ist schon klar, was unendlich bedeutet, so blöd bin ich
nun auch nicht. Aber im Vergleich mit den mitgelieferten
Datentypen kann man das, was ich brauche als unendlich
bezeichnen.
Denn als Informatikstudent hat man mit ganz anderen
Dimensionen zu tun. Da benutzt man z.B. einen 1024 Bit
Exponenten für RSA Verschlüsselungssysteme. Und dagegen sind
die Standardtypen ein Fliegenklecks.
Insofern haben mir die Antworten leider nicht geholfen.
Dein Problem liegt entweder darin, dass du zu Faul bist und hier einfach eine fertige Lösung bekommen willst, oder du hast grundlegende Probleme mit den Grundlagen der Mathematik.
In beiden Fällen ist dieses Forum nicht der richtige Platz !!
In allen Unterlagen zur Assemblerprogrammierung stehen Beispiele wie man mit z.B. einer 8-Bit CPU 32-Bit Werte berechnet. diese Beispiele sind auf belibiege (Naja, soweit der Speicher reicht) skalierbar.
DIES SIND GRUNDLAGEN DER INFORMATIK.
Ein Computer ist eine rein mathemaschische Maschine, und , ausser er ist defekt, funktioniert er auch immer rein logisch auch wenn dies für den Menschen nicht immer durchschaubar ist.
Eine Fliesskomma-Zahl kann man schreiben als
m*b^e
Wobei
b = die Basis ist
m = die Mantisse zur basis b ist
und e = der exponent
b ist normalerweise eine konstante, also musst du nur noch m und e in eine, oder mehrere, Variablen packen und nach den ganz normalen Regeln rechnen.
Dein Problem liegt entweder darin, dass du zu Faul bist und
hier einfach eine fertige Lösung bekommen willst, oder du hast
grundlegende Probleme mit den Grundlagen der Mathematik.
Ich glaube du kennst mich nicht genug, um zu behaupten, dass ich zu faul bin, oder eine Lösung will. Was ich wollte waren Informationen zu diesem Thema und Vorschläge. Jedoch ging es in jeder Antwort darum, dass man mich belehren wollte, was unendlich bedeutet. Und das du jetzt auch noch obiges behauptest ist die Höhe. Anstatt auf meine Fragen einzugehen haben alle um den Brei herum geredet.
Wenn du ein Problem hast, willst du dann konstruktive Ideen oder Vorschläge oder willst du eine Belehrung über einen bestimmten Begriff? Und wenn du dann sagst, dass dir die Antwort nicht hilft, dann kommst so jemand wie du daher und behauptet du seist zu faul oder hast keine Ahnung.
Ich für meinen Teil informiere mich erst, bevor ich etwas anfange was ich noch nicht gemacht habe, denn oft haben andere wichtige Ratschläge.
Und nur zu deiner Information: Ich brauche das für überhaupt nichts. Mir haben die Standarddatentypen von C++ nur nicht ausgereicht, um meine Funktion zur Schnellen Exponentiation richtig testen zu können. Deswegen wollte ich mich nur informieren um vielleicht selbst so etwas zu schreiben falls ich genug Zeit hätte, damit ich nicht unbedingt auf die Bigint Klasse der LiDIA Gruppe zurückgreifen müsse um das zu testen.