Gleitkommadarstellung < Numerik < Hochschule < Mathe < Vorhilfe
|
Status: |
(Frage) beantwortet | Datum: | 22:29 Fr 22.10.2004 | Autor: | Bastiane |
Hallo!
Diesmal geht's um die Gleitkommadarstellung (binär), und zwar normalisiert und denormalisiert. Also, normalisiert bedeutet dass die erste Stelle hinter dem Komma nicht Null ist? Demnach bei der Binärdarstellung 1? Jedenfalls habe ich das irgendwie von früher mal so in Erinnerung.
Definiert haben wir das folgendermaßen:
[mm] x=(-1)^s (1+\summe_{i=1}^{m}d_i 2^{-i}) 2^e
[/mm]
mit [mm] s\in{0,1} [/mm] (Vorzeichen), m Mantissenlänge, e Exponent
Kann mir jemand diese Definition erklären? Also, ich bin schon so weit gekommen:
[mm] (-1)^s [/mm] ist klar, bei positiven Zahlen muss s=0 sein, bei negativen 1
[mm] \summe_{i=1}^{m}d_i 2^{-i} [/mm] ist die Darstellung der Dezimalstellen, also der Stellen hinter dem Komma
aber der Rest - die +1 und am Ende noch [mm] 2^e [/mm] - heißt das jetzt, dass die Stelle vor dem Komma = 1 ist? Aber wie bekomme ich denn Zahlen hin, bei der die Stelle vor dem Komma größer als eins ist?
Nein, irgendwie mache ich glaube ich etwas falsch. Wer hilft mir?
|
|
|
|
Hallo Bastiane,
richtig vorm Komma steht ne eins. Das wären die normalisiert. Zum Exponenten würd ich erstmal ein Beispiel machen wollen.
13 wäre in Binärdarstellung 1101
Sagen wir mal m=4
Dann wären
s=0
e=3
[mm] d_1=1
[/mm]
[mm] d_2=0
[/mm]
[mm] d_3=1
[/mm]
[mm] d_4=0
[/mm]
gruß
mathemaduenn
|
|
|
|
|
Status: |
(Frage) beantwortet | Datum: | 23:55 Fr 22.10.2004 | Autor: | Bastiane |
Hallo mathemaduenn! (übrigens 'n cooler Name - wie kommt man auf so was? )
Danke für das Beispiel, ich habe es nachgerechnet und bin fasziniert davon, wie es funktioniert. Aber eigentlich hätte ich auch selber auf ein Beispiel kommen können...
Um nochmal zu der Erklärung der Definition zurückzukommen:
die 1 in der Klammer vor der Summe zusammen mit der Summe kann doch dann jede beliebige Zahl zwischen 1 und 2 darstellen (inklusive 1, exklusive 2), oder? Und zusammen mit dem [mm] 2^e [/mm] am Ende ergibt es dann jede Zahl, auch größer 2. Richtig so?
Nun zu der zugehörigen Aufgabe:
Ich soll Zahlen in der normalisierten (Exponent [mm] e\in [/mm] {-3,...,3})und der nichtnormalisierten Gleitkommadarstellung (e=-3) darstellen.
Als erstes [mm] \bruch{5}{2}
[/mm]
Das habe ich so gemacht:
[mm] \bruch{5}{2}=2,5=1*2^1+1*2^{-1}
[/mm]
also in Binärdarstellung:
[mm] 10,1*2^0, [/mm] normiert also [mm] 1,01*2^1 [/mm] oder?
Wenn jetzt bei der denormalisierten Darstellung der Exponent e=-3 sein soll, muss ich das doch so umformen:
[mm] =10100*2^{-3}
[/mm]
Das müsste nach meinen Nachrechnungen eigentlich stimmen.
Als nächstes muss ich das dann für [mm] \bruch{1}{3} [/mm] und [mm] \bruch{-1}{10} [/mm] genauso machen. Aber wie?
[mm] \bruch{1}{3} [/mm] ist doch als Dezimaldarstellung periodisch - muss man das in der binären Gleitkommadarstellung dann runden? Oder beliebig annähern? Ich wüsste nämlich nicht, wie ich [mm] \bruch{1}{3} [/mm] darstellen soll, bei 2,5 war das ja einfach...
|
|
|
|
|
Hallo Bastiane,
> die 1 in der Klammer vor der Summe zusammen mit der Summe
> kann doch dann jede beliebige Zahl zwischen 1 und 2
> darstellen (inklusive 1, exklusive 2), oder? Und zusammen
> mit dem [mm]2^e[/mm] am Ende ergibt es dann jede Zahl, auch größer
> 2. Richtig so?
genau , bzw. fast gerundete Zahl eben
> Nun zu der zugehörigen Aufgabe:
> Ich soll Zahlen in der normalisierten (Exponent [mm]e\in[/mm]
> {-3,...,3})und der nichtnormalisierten
> Gleitkommadarstellung (e=-3) darstellen.
> Als erstes [mm]\bruch{5}{2}
[/mm]
> Das habe ich so gemacht:
> [mm]\bruch{5}{2}=2,5=1*2^1+1*2^{-1}
[/mm]
> also in Binärdarstellung:
> [mm]10,1*2^0,[/mm] normiert also [mm]1,01*2^1[/mm] oder?
Genau
> Wenn jetzt bei der denormalisierten Darstellung der
> Exponent e=-3 sein soll, muss ich das doch so umformen:
> [mm]=10100*2^{-3}
[/mm]
Das kenn ich eigentlich so die normalisierte Darstellung wird grundsätzlich genutzt wenn dies möglich ist also hier bis [mm] 2^{-3}. [/mm] Danach wird die 1 vor deiner Summe durch eine 0 ersetzt. Also für ein Zehntel wäre dies nötig.
Zur Rundung: es wird zur nächsten darstellbaren Zahl gerundet. Welche dies ist kommt eben auf die (vorgegebene) Mantissenlänge an.
gruß
mathemaduenn
|
|
|
|
|
Status: |
(Frage) beantwortet | Datum: | 21:45 Sa 23.10.2004 | Autor: | Bastiane |
Hallo Mathemaduenn (oder auch jemand anders)!
Okay, ich gehe mal davon aus, dass meine Lösung mit den [mm] \bruch{5}{2} [/mm] so richtig war - kann vielleicht jemand die weiteren Lösungen überprüfen?
Also, für [mm] \bruch{1}{3} [/mm] habe ich [mm] 1,0100*2^{-2} [/mm] als normalisierte Zahl heraus (das wäre dann dezimal 0,3125 - anscheinend geht das mit einer Mantisse von vier Stellen nicht besser?) und [mm] 10,1001*2^{-3}, [/mm] das wäre dann dezimal [mm] \approx [/mm] 0,32 - also sogar besser als bei der normalisierten Darstellung.
Aber da kommt mir gerade noch eine Frage:
Mantisse ist doch nur das, was hinter dem Komma steht, oder? Also darf ich vier Stellen hinter dem Komma benutzen, und die Eins vor dem Komma brauche ich in der normalisierten Darstellung auch nirgendwo abspeichern oder hinschreiben, weil sie ja immer eins ist - aber in der denormalisierten? Da kann da ja was anderes hinkommen - muss ich dann bei der Mantisse ne Stelle weniger nehmen oder kann ich einfach vor dem Komma die zwei Stellen nehmen?
So, jetzt hier noch meine Lösung für [mm] \bruch{-1}{10}:
[/mm]
Das Minuszeichen lasse ich mal weg - dafür kann ich doch das Vorzeichenbit nehmen, oder? Also, [mm] \bruch{1}{10} [/mm] =0,1. Dual ist das dann näherungsweise [mm] 1,1001*2^{-4} [/mm] normalisiert (das wären dann dezimal 0,0996) und denormalisiert [mm] 0,1100*2^{-3} [/mm] (also dezimal 0,09375).
Kann das so stimmen?
Jetzt muss ich nämlich noch ne Subtraktion und ne Multiplikation damit machen - hoffentlich haut das hin!
MfG
Bastiane
|
|
|
|
|
Hallo Bastiane,
Dein Ergebnis für 5/2(normalisiert) stimmt.
> Also, für [mm]\bruch{1}{3}[/mm] habe ich [mm]1,0100*2^{-2}[/mm] als
> normalisierte Zahl heraus (das wäre dann dezimal 0,3125 -
> anscheinend geht das mit einer Mantisse von vier Stellen
> nicht besser?)
stimmt auch
> und [mm]10,1001*2^{-3},[/mm] das wäre dann dezimal
> [mm]\approx[/mm] 0,32 - also sogar besser als bei der normalisierten
> Darstellung.
Es geht ja um Computerdarstellung Wo soll denn der Speicherplatz für die zusätzliche Stelle vorm Komma herkommen. Hast Du vorgesehen die Stelle des Kommas zu speichern?
> Aber da kommt mir gerade noch eine Frage:
> Mantisse ist doch nur das, was hinter dem Komma steht,
> oder? Also darf ich vier Stellen hinter dem Komma benutzen,
> und die Eins vor dem Komma brauche ich in der
> normalisierten Darstellung auch nirgendwo abspeichern oder
> hinschreiben, weil sie ja immer eins ist - aber in der
> denormalisierten? Da kann da ja was anderes hinkommen -
> muss ich dann bei der Mantisse ne Stelle weniger nehmen
> oder kann ich einfach vor dem Komma die zwei Stellen
> nehmen?
Wenn du das im Computer real speicherst mußt Du dich schon auf ein Format festlegen. d.h. wenn Du die normalisierte Darstellung vorschreibst brauchst Du die 1 nicht speichern. Wenn Du die denormalisierte Darstellung erlaubst mußt Du die 1 speichern und kannst dafür näher an die Null ran.
> So, jetzt hier noch meine Lösung für [mm]\bruch{-1}{10}:
[/mm]
> Das Minuszeichen lasse ich mal weg - dafür kann ich doch
> das Vorzeichenbit nehmen, oder? Also, [mm]\bruch{1}{10}[/mm] =0,1.
> Dual ist das dann näherungsweise [mm]1,1001*2^{-4}[/mm] normalisiert
Nein weil es -4 in deinem Exponentenbereich nicht gibt.
> (das wären dann dezimal 0,0996) und denormalisiert
> [mm]0,1100*2^{-3}[/mm] (also dezimal 0,09375).
> Kann das so stimmen?
Ja das kann stimmen.
Computerzahlen haben folgendes Format:
Vorzeichenbit
Mantisse
Exponent
Klar: Die Länge ist jeweils beschränkt, d.h. Es ist nur eine bestimmte Anzahl gültige Stellen möglich.(Mantisse) Die Exponenten können nur aus einem bestimmten Bereich kommen(Exponent)
Um möglichst viele Stellen darstellen zu können nimmt man also falls möglich die normalisierte Darstellung. Um kleine Zahlen doch noch darstellen zu können die denormalisierte.
gruß
mathemaduenn
|
|
|
|