bei int maximal 46340 warum???



  • @Marc++us: Bis vor diesem Post hast du selbst keine Anstalten gemacht, irgendetwas zu erklären. Aber egal. Du möchtest, dass die Tatsache der fixen Größe auf Computern erklärt wird? OK, es ist denke möglich das zu erklären. Aber es zu begründen ist wohl weniger einfach. Zumindest wenn die High-Level-Sicht der Dinge erhalten bleiben soll.

    @c++ newbie: calc.exe ist in C++ geschrieben, da könnte ich fast mit dir wetten. Such mal mit google nach gmp. Bzw. lass es und kümmer dich um die Grundlagen *g*.
    Du solltest dir klarmachen, dass ein Computer normalerweise (es lässt sich umständlich umgehen - das machen BigNum-Klassen) jede Zahl mit einer festen Anzahl Ziffern ansieht. Also beispielsweis 0210 statt 210 und 0004 statt 4. Logisch, dass dann Zahlen wie 10000 Probleme machen. Sie passen einfach nicht mehr rein. Dennoch wird die Zahl - wenn auch fehlerhaft - dargestellt als 0000. Das ist auch der Grund, weshalb Marc++us Schleife terminiert.



  • calc.exe nimmt wahrscheinlich long double. da ist aber gerinmge genauigkeit



  • warum koennen menschen nicht rechnen? wie ist in diesem zusammenhang rechnen definiert?
    bugnum und 128bit haben so ziemlich gar nix miteinander zu tun.



  • PeterTheMaster schrieb:

    warum koennen menschen nicht rechnen?

    kannst du mit beliebigen zahlen rechnen? nein. es ist schlicht das problemchen mit der unendlichkeit.



  • Mr. N schrieb:

    PeterTheMaster schrieb:

    warum koennen menschen nicht rechnen?

    kannst du mit beliebigen zahlen rechnen? nein. es ist schlicht das problemchen mit der unendlichkeit.

    also ich kann. ich brauche dann nur unendlich viel zeit und genausoviel konzentration.
    verstehe die diskussion an dieser stelle nicht.



  • Danke Marc++us, mir ganz aus dem Herzen gesprochen.
    Zahlen-Typen werden durch eine ( auf unterschiedlichen Machinen unterschiedliche ) bestimmte menge Bit dargestellt .
    Bei denen ohne Vorzeichen ( unsigned) nutzt man alle zur Darstellung des Zahlenwertes.
    Egal ob unsigned oder signed, wenn ich nur "ein wiziges bißchen" zum Maximalwert addiere ( oder subtrahiere bei den neg. Werte ) ist das Ergebnis nicht mehr darstellbar, weil Überlauf. Dies gilt für alle Typen!! Ein ausweichen auf den nächst größeren nützt nichts!

    Und wenn man genau rechnen will, muß man eben Hilfs-konstruktionen nehmen.
    So wurde z.B. beim Datenträgeraustausch der Banken (zumindest unter Basic) der Betrag in Pfennigen als String gespeichert. und alle Rechenoperationen durch mühsames Bearbeiten mit Substring-Konstruktion betrieben.

    Ich denke, solche Infos sollte man bei solchen grundlegenden Fragen geben
    Hanns



  • bja schrieb:

    also ich kann. ich brauche dann nur unendlich viel zeit und genausoviel konzentration.
    verstehe die diskussion an dieser stelle nicht.

    ganz einfach: das ist dir nicht gegeben. außerdem hast du das unendlich große gehirn vergessen (unendlich viel zwischenergebnisse)



  • Aber man kann (theoretisch) mit beliebig großen endlichen Zahlen rechnen.



  • Marc++us schrieb:

    Statt hier eine Basis für das Verständnis für die Hintergründe der Rechnermathematik zu legen, höre ich Dinge wie "Javas Bignum" oder "auch Menschen können nicht rechnen, wozu die Aufregung mit den Computern".

    Deine 'Rechnermathematik' ist nicht so universell, wie Du es hier behauptest. Fast alle Sprachen die ich verwende(n muss) haben genau diese Probleme nicht. Ob nun Ruby, Python, Scheme oder Common Lisp (und 3 davon sind auch recht typische Einsteigersprachen [!= Spielzeug]), alle haben dieses Problem so nicht (behaupte ich mal, ohne in die Dokumentation zu schauen; so: correct me if I am wrong!).

    Ist es denn so schwer, eine Aussage in einfache und verständliche Sätze zu packen, die dem Frager weiterhelfen?

    'Mit C++ kann man nicht rechnen.'?

    Trägt eine umfassende akademische Debatte wirklich etwas zum Verständnis des Fragers bei?

    Na, das hoffe ich doch :).

    Sind Zitate von IEEE- und ISO-Normen hilfreich, wenn ein Einsteiger ein typisches Problem hat?

    Nein.

    Und ist es nicht Zeichen von Verständnis, wenn man sein eigenes Wissen auf den Sprach- und Wissensbereichs des Fragers transformiert und dessen Problemkreis adaptiert, um das Problem verständlich zu erklären?

    Eigentlich schon, aber nicht wenn man (in meinen Augen ohne zusätzlich etwas zu erklären) pauschal generalisiert.



  • \aleph_0 schrieb:

    Aber man kann (theoretisch) mit beliebig großen endlichen Zahlen rechnen.

    Es muss aber immer eine Grenze geben. Man kann also nicht generell rechnen.



  • c++ newbie schrieb:

    😮 🙄
    wie rechnen denn Taschenrechner, z.B. Windows' calc.exe? Welche einfache BigNum kann ich für Dev-Cpp verwenden? Oder soll ich auf C# umsteigen? Dort habe ich decimal gefunden, 128 bit. 😕

    ich denke da musst du dir keine sorgen machen belib bei c++, wenn du schon damit angefangen hast. man ist eigentlich nur in wenigen fällen auf solche megadatentypen angewiesen, ausser man will einen neuen rekord mit grossen primzahlen aufstellen.


Anmelden zum Antworten