Gleitpunktzahlen-Darstellung < Technische Inform. < Praktische Inform. < Hochschule < Informatik < Vorhilfe
|
Status: |
(Frage) beantwortet | Datum: | 19:25 So 06.03.2005 | Autor: | sunita |
Hallo,
Standard für Réels IEEE754 : die Darstellung Reel in binaire ist für mich noch unklar.
wie kann man 0,1171875 mit 32 Bit IEEE754 Gleitpunktzahl-darstellen?
Die Forme [mm] +-(s)+(1+m)+2^e-127 [/mm]
da 0,11711875 positif ist leicht zu merken das Vorzeichnen ist dann +, also 0 heisst positif.
0,11711875 <1 muss ich 0,11711875 *2 bis das Ergebnis >1
also
0,11711875 *2=0,234375 <1*2=0,46575<1 *2 =0,9375 <1*2=1,875>1
ich habe 4 mal *2 um eine Werte>1 zu bekommen.
0,11711875 in [mm] formel+-(s)+(1+m)+2^e-127 [/mm] = (+1)*1,875*2^-4
exponent e= 127 -4
-4 da ich * habe.
e=127-4=123 123 in binaire =1111011
nun was mit Mantisse? formel =(1+m)
also (1-1,875)=0,875 wie kann ich 0,875 in binaire schreiben?
danke.
sunita
|
|
|
|
Status: |
(Antwort) fertig | Datum: | 14:49 Mo 07.03.2005 | Autor: | Paulus |
Liebe sunita
> Hallo,
> Standard für Réels IEEE754 : die Darstellung Reel in
> binaire ist für mich noch unklar.
>
Bist du eigentlich francophon? Ich meine jedenfalls, man sollte in einem deutschen Text nich reel schreiben, sondern real (neudeutch). Auch nicht binaire, sondern binär. Oder positiv statt positif.
> wie kann man 0,1171875 mit 32 Bit IEEE754
> Gleitpunktzahl-darstellen?
>
> Die Forme [mm]+-(s)+(1+m)+2^e-127[/mm]
>
Da meinst du sicher [mm] $(-1)^s+(1+m)*2^{e-127}$, [/mm] oder?
Zu beachten dabei ist, dass das nicht eine echte Mantisse ist, sondern den Wert hinter dem Komma angibt. Das wird bisweilen als Signifikanz bezeichnet.
Jetzt musst du einfach wissen, dass jede Binärzahl nur Nullen und Einsen enthalten kann. Die dezimale Darstellung $13,75_$ sieht in binärer Darstellung zum Beispiel so aus:
$1101,11_$
Für die Darstellung in deinem gewünschten Format musst du jetzt das Komma so weit verschieben, bis vor dem Komma nur noch genau 1 Mal die eins steht, und die Zahl dann durch multiplizieren mit einer Zweierpotenz wieder auf den richtigen Wert bringen:
[mm] $1101,11=1,10111*2^3$
[/mm]
Ich habe das Komma 3 Stellen nach links verschoben, was einer Division durch [mm] $2^3$ [/mm] entspricht. Das habe ich durch das Multiplizieren mit [mm] $2^3$ [/mm] wieder korrigiert.
Jetzt ist die Darstellung normalisiert (vor dem Komma genau eine $1_$).
Weil im IEE 754 die Fliesskommadarstellung prinzipiell normalisiert ist, bedeutet die $1_$ vor dem Komma keine echte Information und wird deshalb weggelassen.
In der Signifikanz (das, was du als Mantisse bezeichnet hast), stehen also die Nachkommastellen: 101110000..000 Die Nullen hinten füllen die Signifikanz einfach auf, so dass 23 Bits belegt sind.
Für die obige Zahl ist also:
Vorzeichen: $0_$
Exponent: $10000010_$ (Die Zahl 130 (3+127) in Binärdarstellung)
Signifikanz: $10111000000000000000000_$
> da 0,11711875 positif ist leicht zu merken das Vorzeichnen
> ist dann +, also 0 heisst positif.
>
> 0,11711875 <1 muss ich 0,11711875 *2 bis das Ergebnis >1
> also
> 0,11711875 *2=0,234375 <1*2=0,46575<1 *2 =0,9375
> <1*2=1,875>1
> ich habe 4 mal *2 um eine Werte>1 zu bekommen.
>
Gut, aber jetzt musst du noch herausfinden, was denn die $0,875_$ in binärer Darstellung sind!
Nach meiner Berechnung ist das $0,111_$ binär. Damit ist deine Signifikanz
$11100000000000000000000_$
Das Bitmuster für deien Zahl müsste also sein:
00111101111100000000000000000000
Die 0 links ist das Vorzeichenbit
Die nächsten 8 Bit (01111011) wären dezimal 123
Die weitere 23 Bits sind die Nackommastellen. (oder eben Binär 0,111)
In deiner Formel eigesetzt wäre das dann: $+1 * 1,111_$ (binär)$ * [mm] 2^{-4}$
[/mm]
Mit lieben Grüssen
Paul
|
|
|
|
|
Status: |
(Frage) beantwortet | Datum: | 21:33 Mo 07.03.2005 | Autor: | sunita |
Abend Paulus,
vielen Dank.
wie bekommst du diese Werte mit dem Tachenrechner? oder wie berechnest du?
>>>....Die dezimale Darstellung 13, 75 sieht in binärer Darstellung zum Beispiel so aus:
1101,11....
>>>>
oder
>>Gut, aber jetzt musst du noch herausfinden, was0,875 denn die in binärer Darstellung sind!
Nach meiner Berechnung ist das binär 0,111...>>>>>
danke.
ich habe aber immer nicht verstanden deine Berchnung um 0,111 zu bekommen
|
|
|
|
|
Status: |
(Antwort) fertig | Datum: | 23:10 Mo 07.03.2005 | Autor: | Paulus |
Liebe sunita
vergiss bitte den Taschenrechner. Der taugt zu nichts!
Für das Umsetzen von einem System in ein anderes gibt es verschiedene Methoden. Die meiner Meinung nach Einfachste ist die Folgende:
Für die Stellen vor dem Komma dividiert man die Zahl laufend durch die Zielbasis und notiert die sich ergebenden Reste von rechts nach links (in Zifferndarstellung aus der Zielbasis, beim Sechzehnersystem also zum Beispiel mit ABCDEF für die Ziffern nach der 9).
Für die Stellen nach dem Komma multipliziert man die Nachkommastellen laufend mit der Zielbasis und notiert die sich dabei ergebenden Ziffer vor dem Komma fortlaufend von links nach rechts (auch in der Zielbasis, selbstverständlich).
Das war jetzt äusserst knapp zusammengefasst und bedarf deshalb eines erläuternden Beispiels:
Ich will die Zahl 1357,14453125 (dezimale Darstellung) in die binäre Darstellung umsetzen.
Also zumächst die Stellen vor dem Komma: die Zahl 1357.
1357 : 2 = 678 Rest 1
678 : 2 = 339 Rest 0
339 : 2 = 169 Rest 1
169 : 2 = 84 Rest 1
84 : 2 = 39 Rest 0
42 : 2 = 19 Rest 0
21 : 2 = 9 Rest 1
10 : 2 = 4 Rest 0
5 : 2 = 2 Rest 1
2 : 2 = 1 Rest 0
1 : 2 = =0 Rest 1
Die Reste ergeben also die Binärziffern, von rechts nach links:
10101001101
Jetzt die Nachkommastellen 0,14453125
2*0,14453125 = 0,2890625
2*0,2890625 = 0,578125
2*0,578125 = 1,15625
2*0,15625 = 0,3125 (nur die Nachkommastellen der vorherigen Zahl mal 2)
2*0,3125 = 0,625
2*0,625 = 1,25
2*0,25 = 0,5
2*0,5 = 1
Jeweils die Stelle vor dem Komma ergibt die nächste Ziffer nach dem Komma in Binärdarstellung: 0,00100101
Das ergibt also zusammen: [mm] $1375,14453125_{10}=10101001101,00100101_2$
[/mm]
Beachte auch, dass ein endlicher Dezimalbruch durchaus einen unendlichen Binärbruch erzegen kann:
[mm] $0,3_{10}=0,0\overline{1001}_2$
[/mm]
Du solltest jetzt nachvollziehen können, wie ich das bestimmt habe.
Mit lieben Grüssen
Paul
|
|
|
|
|
Hallo, sunita
für 0,875 ist es schon gut, paar 2erPotenzen im Kopf zu haben,
oder
einen Taschenrechner der Bruchrechnen kann.
Denn 0,875 = 875/1000 = 7/8 und bekanntlich 8 = 2³, [mm] $7_{dez} [/mm] = [mm] 111_{bin}$
[/mm]
also [mm] $0,875_{dez} [/mm] = [mm] 0,111_{bin}$
[/mm]
|
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 00:19 Do 10.03.2005 | Autor: | sunita |
Paulus, FriedrichLaher,
Ich bedanke mich ganz herzlich. Ich habe endlich verstande.
Sunita
|
|
|
|