Autor |
Beitrag |
Stefan
| Veröffentlicht am Samstag, den 25. November, 2000 - 09:59: |
|
Wie berechne ich den dezimalen Wert einer normalisierten bzw. nicht normalisierten Mantisse? Wäre dankbar wenn man es anhand eines Besipiels zeigen würde, denn die Formel allein verstehe ich nicht ganz, bzw. ich komme auf falsche Ergebnisse, wenn ich sie benutze. Danke im voraus |
h.ludens
| Veröffentlicht am Mittwoch, den 29. November, 2000 - 19:37: |
|
Hallo Stefan, da du den Ausdruck Mantisse benutzt, vermute ich, daß sich der Ausdruck bereits in normalisierter Binärform (nach IEEE) befindet, ich versuche es also am Beispiel einer Gleitkommazahl in single precision - 32bittig quasi). die Darstellung setzt sich aus 32 Stellen zusammen, Bit 31 (die erste Stelle, auch sign genannt) beeinhaltet das Vorzeichen, Bit 30-23 stellen den Exponenten (charakter) dar, die Bit 22-0 beinhalten die eigentliche Zahl (Mantisse heisst die komplette Zahl, der IEEE-Standard zeigt aber nur die Nachkommastellen - die sogenannte "fraction", da die normalisierte Form stets 1,irgendwas lautet, man kann sich also die erste Stelle sparen). O.K. Das Beispiel : sign/charakter/fraction - 0/10000011/100000000000000000000000 (ich hoffe dass ich mich nicht verzählt habe, es sind verdammt viele Nullen in der fraction). 1. sign 0 - die Zahl ist positiv (bei 1 ist sie es dann also nicht). 2. charakter 10000011 - der endgültige Exponent errechnet sich aus der Differenz der im charakter enthaltenen Zahl und der Konstante (bias) 127 - also 131-127 (10000011 entspricht der dezimalen 131). Ergibt zusammen 4 - der Exponent heißt also 10^4 3. fraction - die zahl lautet eigentlich 1,1000... (ingesamt 23 Stellen) - das bedeutet 2^0 + 2^-1 und jede Menge Nullen davor und dahinter - oder ausgerechnet einfach nur 1,5. Zusammengesetzt ergibt sich also die Dezimaldarstellung +1,5 * 10^4. Konnte ich dir helfen, oder war ich weit am Ziel vorbei? Gruß |
|