Blockade von zu hohen Zahlen??
-
Ich hab ein Programm geschrieben, mit dem man einige Sachen berechnen kann. Da sind komplexe Formeln drin, die mit sehr hohen Zahlen arbeiten. Zum Beispiel mit der Fakultät einer Zahl.
Aber ab einer bestimmten Zahl kommt als Fakultät auf einmal eine negative Zahl raus oder einfach nur 0.
Blockiert Windows automatisch zu hohe Zahlen? Da frag ich mich doch wieso? In Zeiten von fast unbeschränkter Rechenleistung sollte doch sowas nicht mehr vorkommen oder??
MFG
-
Naja, Windows wird da wohl die geringste Schuld haben. Wenn dann deine CPU. Außerdem ist es ganz normale Binär-Logic, das ein Bit für positive und negative Werte steht. Hat Windows nichts am Hut mit.
Welche Variablentypen benutzt du denn? long? double?
Rechenleistung hat auch nichts mit der größt möglichen Zahl zutun die Windows oder die CPU bearbeiten kann. Bei den PCs gehts eher um Performance und nicht um Zahlengröße. Es gibt aber Libs die dir erlauben größere zahlen zu verarbeiten.
Wie immer gilt: das Problem sitzt meistens nicht im, sondern vorm Computer!
-
Ich benutze double. Und mir is auch klar das Bits auch für negative Zahlen stehen können
.
Aber wie kann bei einer einfachen Fakultät eine negative Zahl entstehen? wenn ich die Fakultät von 31 oder 32(weiß jetzt net so genau) berechne, denn kommt was negatives raus. Aber das dürfte ja eigentlich nich passieren.
-
Blockiert Windows automatisch zu hohe Zahlen?
ROFLMAO!
-
irgendwann läuft eine variable halt über und es kommt humus raus... windows hat damit üüberhaupt absolut gar nichts, aber auch wirklich rein gar nichts zu tun; windows is ein OS und sonst nix.
um das problem zu lösen brauchst du ne arbitrary precision math library für deine sprache oder du schreibst dir selbst eine
Für C gibts zb. http://www.swox.com/gmp/
und für php benutzt man am besten die "bcmath"-Funktionen
-
war ich mal wieder zu langsam