Dezimal zu IEEE 32-Bit Gleitkommazahl |
Per Güncher
Grünschnabel
Dabei seit: 17.05.2012
Beiträge: 3
|
|
Dezimal zu IEEE 32-Bit Gleitkommazahl |
|
Meine Frage:
Ich habe die Zahl -138,448 gegeben und soll diese in eine 32-Bit Gleitkommazahl umwandeln.
Meine Ideen:
Ich habe bis jetzt als Vorzeichen 1 (weil negativ)
Exponent e = 7 + 127 = 134 => 10000110
Aber bei der Mantisse bekomme ich 684720,128 als Ergebnis raus, muss ich das jetzt in binär umwandeln?
|
|
17.05.2012 18:31 |
|
|
stromertle
Grünschnabel
Dabei seit: 17.05.2012
Beiträge: 2
|
|
hallo
zuerst solltest du die zahl an sich ohne vorzeichen in eine binärzahl (mit komma) umwandeln
zb 2,25 = 10,01
jetzt kommen wir zu dem exponenten:
du musst das komma so weit vorverschieben, bis du nur noch eine 1 davor hast
also:
10,01 = 1,001 * 2^1
(die Multiplikation mit 2^x ist bei Binärzahlen lediglich die Ziffer um eine stelle nach rechts zu verschieben)
nun nimmst du diese 1 und addierst sie auf deinen exponent 127 drauf und wandelst diese Zahl wieder binär um
|
|
17.05.2012 19:08 |
|
|
Per Güncher
Grünschnabel
Dabei seit: 17.05.2012
Beiträge: 3
|
|
|
17.05.2012 19:18 |
|
|
stromertle
Grünschnabel
Dabei seit: 17.05.2012
Beiträge: 2
|
|
also wir haben das so gelernt:
wir nehmen eine zahl zb 18,4
nun wandeln wir diese in eine binärzahl um
18,4 = 10010,01100110011...
(die 0,4 werden wie folgt umgewandelt:
0,4*2 = 0,8 => 0
0,8*2 = 1,6 => 1
0,6*2 = 1,2 => 1
0,2*2 = 0,4 => 0
usw...., dann ergibt das die nachkommastelle von oben nach unten gelesen)
Nun müssen wir die Zahl noch normalisieren, dh vor dem Komma darf nur noch eine 1 stehn, somit müssen wir das Komma um 4 stellen nach rechts verschieben ( 1,001001100110011...)
10010,01100110011... *2^0 = 1,00100110011... *2^4
(die Operation *2 verschiebt das Komma um je eine stelle nach rechts, somit steht auf beiden seiten das gleiche, da wir immer mit 10 multiplizieren und das natürlich 4 mal)
zb: 10*10 = 100 = 1*10*10 = 1 *2^4
so und nun müssen wir natürlich auf den exponenten diese 4 dazuaddieren
=> Exponent e = 127+4 = 131 = 1000 0011
nun nehmen wir das vorzeichen (in diesem beispiel 0)
und wir kommen insgesamt auf
0|10000011|00100110011001100110011
|
|
17.05.2012 19:33 |
|
|
Per Güncher
Grünschnabel
Dabei seit: 17.05.2012
Beiträge: 3
|
|
Ja, dann werde ich mal versuch
meine zahl nach diesem Muster umzuwandeln.
Danke erstmal!
|
|
17.05.2012 19:57 |
|
|
|