Übertriebene Datengröße

stefan13

New member
27 Oktober 2011
1
0
Bedingt durch den Prozessor gibt es in vielen Programmiersprachen einen Datentypen mit ellenlanger Mantisse und einen Exponent der geht bis 4932. Ich frage mich wozu soll dieser Datentyp gut sein. Ich habe mal etwas Astronomisches ausgerechnet.
*Link entfernt* Aru

Mit dem was ich hier blödsinniges ausgerechnet habe komme ohne Probleme mit einem zweistelligen Exponenten klar. Was sollte man da noch blödsinnigeres ausrechnen, dass der Exponent in die Tausende geht?

Stefan
 
Bedingt durch den Prozessor gibt es in vielen Programmiersprachen einen Datentypen mit ellenlanger Mantisse und einen Exponent der geht bis 4932.
Quelle? 4932 is ne merkwürdige Zahl :hö:

Hier mein Wissenstand, mit einem Wiki-Link untermauert:
https://de.wikipedia.org/wiki/IEEE_754
Der Exponent hat 15 Bits. D.h. der Exponent kann sogar 32768 Zustände abbilden.

Warum brauchst du soviel? Um große Zahlen darzustellen. N normaler double-Datentyp reicht aber für astronomische Berechnungen eh nicht aus, weil da
a) vermutlich die Zahlen größer sind und wichtiger
b) die Genauigkeit entscheidend is.

Eine große Mantisse ermöglicht dir Genauigkeit, ohne den Zahlenbereich zu verändern.

Überleg mal:
Typ double: 11 bit Exponent, 52 bit Mantisse.
Die größte Zahl, die du schaffst, is (1,11111....11111111)[sub]2[/sub][sup](11111111111)[sub]2[/sub][/sup]. Da aber hier der Exponent so hoch is, schiebt sich das Komma ja um volle 1023 Stellen nach rechts. Addiere in Gedanken auf die Zahl mal (0,1)[sub]2[/sub] auf die Zahl drauf.
Das geht unter, weil ja alles nach der 971. Stelle links vom Komma nicht mehr dargestellt werden kann. Und 2[sup]971[/sup] is eine große Zahl (~2*10[sup]292[/sup]). Selbst, wenn du n Billiarde draufaddierst, wird sich die Zahl nicht verändern.

Angenommen, du hättest stattdessen einen Datentyp mit 11 bit Exponent, aber 2000 bit Mantisse. Dann könnte alle Daten noch gespeichert werden. Du hättest dann selbst rechts vom Komma noch viele Stellen und selbst die Addition von (0,0000000000001)[sub]2[/sub] würde korrekt gehen, obwohl die Zahlen riesig sind.

edit:
Ich seh grad... 2[sup]11[/sup] is ja 2048, nicht 1024. Egal, Idee bleibt dieselbe, auch wenn ich mich verrechnet hab :biggrin:
 
Quelle? 4932 is ne merkwürdige Zahl :hö:
[...]
Der Exponent hat 15 Bits. D.h. der Exponent kann sogar 32768 Zustände abbilden.

Jepp, 1 Bit davon ist Vorzeichen, also wird die größte Zahl irgendwo bei 2[sup]16384[/sup] liegen und das ist ungefähr 10[sup]4932[/sup], weil 16384*log[sub]10[/sub](2) = 4932.

Nur mal so als Ergänzung. ;)