| |  | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte | | |  | PNY präsentiert die neue NVIDIA RTX A400 und die A1000 Grafikkarte, eine Pressemitteilung
|
Autor
|
Thema: Maximale Zahlenwerte (1315 mal gelesen)
|
CADmium Moderator Maschinenbaukonstrukteur
       

 Beiträge: 13530 Registriert: 30.11.2003 .
|
erstellt am: 07. Jul. 2004 09:19 <-- editieren / zitieren --> Unities abgeben:         
Mit wieviel Bits werden eigentlich die Zahltypen unter AutoLisp abgelegt? .. und daraus resultierend : was ist die max. verarbeitbaren Zahlen ? ( Bei Real sowas um 1e308 ) Hat einer da Infos? Hab auf die schnelle nichts gefunden. ------------------ - Thomas - Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
CADmium Moderator Maschinenbaukonstrukteur
       

 Beiträge: 13530 Registriert: 30.11.2003 .
|
erstellt am: 07. Jul. 2004 09:31 <-- editieren / zitieren --> Unities abgeben:         
|
Dabrunz Mitglied
 
 Beiträge: 127 Registriert: 28.05.2003
|
erstellt am: 07. Jul. 2004 12:15 <-- editieren / zitieren --> Unities abgeben:          Nur für CADmium
Zumindest fast - da hast du das Bit für's Vorzeichen unterschlagen. En detail: Code:
double - 64 bit: - Vorzeichen: 1 Bit - vz - Mantisse: 52 Bit - m := (m0, m1, m2, .. m51) - Exponent: 11 Bit - e := (e0, e1, e2, .. e10) Hierbei werden die einzelnen Bits dann als Binär-Ziffern aufgefasst und eine Zahl im Binärsystem ergibt sich dann wie folgt: x := (-1)^vz * 1,m0m1m2..m51 * 2^(e0e1e2..e10 - 10000000000)
2 kleine Beispiele: (1) Wie wird 4.0 in dieser Schreibweise dargestellt? Code:
4.0 = 2^2 = (-1)^0 * 2^2, also vz = 0 = (-1)^0 * 1,00..0 * 2^2, also m = (0, 0, ...0) = (-1)^0 * 1,00..0 * 2^(1026 - 1024), also e = (10000000010)
Die 1024 entsprechen dem (fest bestimmten) Abzug am Exponenten e, dem sogenannten Bias. Abschließend noch ein Beispiel dafür, dass ganz harmlos aussehende Zahlen wie 0.2 in dieser Darstellung nur gerundet wiedergegeben werden können: Code:
0.2 = 900 719 925 474 099,2 / 2^52; also vz = 0
Allerdings ist noch immer ein Dezimalrest übrig und mehr als 52 Stellen stehen uns in der Binärdarstellung nicht zur Verfügung, Was bleibt ist - wie fast immer beim Rechnen mit Fließkomma-Zahlen - das Abschneiden des Nachkomma-Anteils: Code:
0.2 ~= 900 719 925 474 099 / 2^52; also vz = 0 = 900 719 925 474 099 * 2^(-52) Wechsel zur Binärdarstellung = 11 0011 0011 0011 0011 0011 0011 0011 0011 0011 0011 0011 0011 * 2^(-52) = 0,0011 0011 0011 .. * 2^0 = 1,1 0011 0011 ... * 2^(-3), also m = (1 0011 0011 .. 001) = 1,1 0011 0011 ... * 2^(1021 - 1024), also e = (01111111101)
Die so dargestellte Dezimalzahl lautet aber: 0,19999999999999998334665463062265 Leicht daneben ... Achim Dabrunz [Diese Nachricht wurde von Dabrunz am 07. Jul. 2004 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |

| |
CADmium Moderator Maschinenbaukonstrukteur
       

 Beiträge: 13530 Registriert: 30.11.2003 .
|
erstellt am: 07. Jul. 2004 13:14 <-- editieren / zitieren --> Unities abgeben:         
|
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
 |