Single Precision G-Kommazahl < Technische Inform. < Praktische Inform. < Hochschule < Informatik < Vorhilfe
|
Status: |
(Frage) beantwortet | Datum: | 17:03 Fr 19.08.2005 | Autor: | erazor |
Ich habe diese Frage in keinem Forum auf anderen Internetseiten gestellt.
Ich habe hier ein kleines Verständnisproblem und hoffe das mir jemand einen Tipp geben kann:
Es handelt sich um eine Gleitkommazahl im IEEE754-Format mit 3Byte Mantisse und 1Byte Exponent im Big Endian Format.
Ermitteln müsste ich den Wert der Single Precision Gleitkommazahl der auf der Adresse 0x0000H abgespeichert ist.
0x0000H CDCC 4CBE 1930 30
0x0010H 0D0A 3A31 3034 30
.... (geht hier noch weiter ist aber glaube ich nicht relevant für die Aufgabe...)
Meine Frage(n) ist nun:
1. Im Hex-System entspricht eine "Stelle" 4 Binärstellen. Die für die Aufgabe relevante Zahl wäre dann CDCC 4CBE. Richtig ?
2. CDCC 4CBE ist im Binärsystem =
1100 1101 1100 1100 0100 1100 1011 1110
C D C C 4 C B E
Das entspricht laut meinem Umrechner einem Dezimalwert von -4.2844768 Exponent 8.
Wo beginnt die Mantisse und wo endet sie ? Wo bekomme ich das Vorzeichen und den Exponenten her, wenn ich die Umwandlung "zu Fuß" machen würde ?
Ich wäre sehr dankbar wenn mir jemand auf die Sprünge helfen könnte.
mfg
erazor
|
|
|
|
Status: |
(Antwort) fertig | Datum: | 16:17 So 21.08.2005 | Autor: | Frank05 |
> Es handelt sich um eine Gleitkommazahl im IEEE754-Format
> mit 3Byte Mantisse und 1Byte Exponent im Big Endian
> Format.
> Ermitteln müsste ich den Wert der Single Precision
> Gleitkommazahl der auf der Adresse 0x0000H abgespeichert
> ist.
>
> 0x0000H CDCC 4CBE 1930 30
> 0x0010H 0D0A 3A31 3034 30
> .... (geht hier noch weiter ist aber glaube ich nicht
> relevant für die Aufgabe...)
>
> Meine Frage(n) ist nun:
> 1. Im Hex-System entspricht eine "Stelle" 4 Binärstellen.
> Die für die Aufgabe relevante Zahl wäre dann CDCC 4CBE.
> Richtig ?
Ja und Nein.
4 Bits entsprechen einer Ziffer im Hex-System. Das stimmt.
Ob diese 8 Ziffern aber fuer dein Problem genuegen ist damit
noch nicht gesagt (siehe weiter unten).
> Wo beginnt die Mantisse und wo endet sie ?
Sie beginnt mit dem ersten Bit nach dem Exponenten und endet mit
dem letzten Bit, das du fuer deine Darstellung gemaess IEEE 754
gewaehlt hast.
> Wo bekomme ich
> das Vorzeichen und den Exponenten her, wenn ich die
> Umwandlung "zu Fuß" machen würde ?
Du solltest vielleicht nochmal einen genaueren Blick auf die Darstellung
im IEEE754 Standard werfen. Da sich natuerlich niemand so einen Standard
im Original durchlesen will empfehlen sich andere Quellen, wie z.B. wikipedia.
Wenn du dir dann das Format fuer diese Zahlen ansiehst wirst du feststellen,
dass fuer das Vorzeichen das erste (hoechstwertigste) Bit reserviert ist. Ist
das Bit gesetzt ist die Zahl negativ, sonst positiv.
Nachdem du dieses eine Bit bisher immer unterschlagen hast musst du dir nochmal
Gedanken ueber die Groessen von Exponent und Mantisse machen. Bei 1 und 3 Bytes
kommst du sonst auf eine Darstellung von 33 Bits. Wahrscheinlicher ist wohl, dass
der Exponent 8 Bits und die Mantisse 23 Bits hat. Dann ist noch zu beachten, dass
der Exponent um 127 verschoben gespeichert wird (d.h. vom gespeicherten Wert musst
du noch 127 abziehen um den tatsaechlichen Exponenten zu erhalten). Wenn du das alles
hast kannst du die Zahl berechnen als M * [mm] 2^E, [/mm] wobei E der normalisierte Exponent ist
und M ist 1,(die Zahl die gespeichert wurde).
Wenn ich das so fuer deine Zahl oben durchrechne bekomme ich etwa -4.03E8. Der Unterschied
zu deinem Ergebnis ergibt sich dann wahrscheinlich aus der Auffassung des besagten Vorzeichenbits.
(Kein Gewaehr, dass mein Ergebnis auch nur annaehernd sinnvoll ist, da ich schon sehr lange
nicht mehr von Hand mit dem IEEE754 rumgerechnet habe)
|
|
|
|