Daniel Thoma: C++: Register Überlauf beim Rechnen abfangen

Beitrag lesen

Hallo steckl,

Beispiel bei +:
Wenn höchste mögliche Zahl (0-1) minus erster Summand kleiner als der zweite Summand ist würde die Rechnung zu einem Überlauf führen.
(angenommen du rechnest nur mit positiven Zahlen)

Bei * das gleiche mit geteilt statt minus.
Usw. ...

So würde es ich machen, aber keine Ahnung ob das ein guter Weg ist.

Ja, das ist ja auch, was ich gemacht habe. Ich habe das nur für die Fakultät noch etwas verändert, da man da ja mehrere Multiplikationen nacheinander durchführt. Im Prinzip führt man immer die umgekehrte Operation auf der oberen Schranke durch.
Dieses vorgehen ist sinnvoll, wenn man wirklich absichern muss, dass das Programm korrekt rechnet. Wenn man hingegen einfach mit großen Zahlen rechnen will, sollte man einfach einen entsprechenden Datentyp verwenden, der das ermöglicht. Es gibt ja die von Mark erwähnten Klassen, die mit Integer-Arrays o.ä. rechnen.

Grüße

Daniel