Hallo Leute,
ich habe in der Uni eine Übungsaufgabe bekommen mit der ich nicht richtig zurecht kommen. Zumindest noch nicht, weil wir kein Rechenbeispiel haben.
Und zwar lautet eine z.b.:
Welcher Fließkommazahl entspricht die unten stehende Bitfolge?
Interpretieren Sie die Bitfolge als eine Zahl im IEEE754 Fließkommaformat mit
einfacher Genauigkeit (single-precision).
0100 0000 0100 0000 0000 1000 0000 0000
Ich weiß nicht wie man das formal macht bzw. die Bits zerlegt.
Hoffe mir kann jemand helfen!
Danke !
Fließkommaformat single precision
-
- Frage
-
xxyy -
25. April 2005 um 00:29
-
-
Wikipedia sollte Dir weiterhelfen -> http://de.wikipedia.org/wiki/Gleitkommazahl (ganz unten)
-
-
Danke für die Tipps!
Dimitri
Was für ein Format hat die Zahl 0x40400800 ?
Wenn ich z.b. die Zahl -2,6 binär darstellen möchte, dann macht man es ja so:
2^1+2^-2+2^-3+......=2+0,25+0,125.....=2,6Ich bin bis 10^-12 gekommen, aber es ist noch ein ganzes Stück...kann man das irgendwie schneller herausfinden?
-
Zitat von xxyy
Danke für die Tipps!
Dimitri
Was für ein Format hat die Zahl 0x40400800 ?
Es ist eine Hexadezimalzahl, weil es mit 0x anfängt.
Jede Hexadezimalziffer sind 4 Bits, also 4 =0100, 0=0000, 4=0100, 0=0000, 0=0000, 8=1000, 0=0000, 0=0000.Zitat
Wenn ich z.b. die Zahl -2,6 binär darstellen möchte, dann macht man es ja so:
2^1+2^-2+2^-3+......=2+0,25+0,125.....=2,6Ich bin bis 10^-12 gekommen, aber es ist noch ein ganzes Stück...kann man das irgendwie schneller herausfinden?
Du hast 0,5 vergessen. Es wird aber trotzdem nie aufhören, da 2,6 nicht exakt dargestellt werden kann. -
0x.... ist normalerweise die Schreibweise für hexadezimale Zahlen und
0x40400800 entspricht Deiner binären Zahl, jedoch als vorzeichenlose Ganzzahl betrachtet. Das was Dimitrij hier macht ist nichts anderes als an eine Speicherstelle die Binärzahl zu schreiben und die selbe Binärzahl ausgeben als wäre sie IEEE754 formatiert. Sollte in Deinem Fall aber nur zur Kontrolle verwendet werden, da Du hier ja nicht mitverfolgen kannst wie umgerechnet wird.Dein Beispiel
0100 0000 0100 0000 0000 1000 0000 0000
1.) Bits gruppieren
0 10000000 (1,)10000000000100000000000
Vorzeichen (1bit)
Exponent (8bit)
Mantisse (23bit + 1 impliziertes erstes Bit)
2.) Exponent bestimmen
10000000b = 128
Exponent = E - 127 = 128-127 = 1
=> Verschiebung des Kommas um 1 (= Multiplikation mit 2[h]1[/h]) und danach hinzufügen des implizierten 1 Bits
=> 11,00000000001000000000003.) Zahl bestimmen
11,0000000000100000000000 =
1*2[h]1[/h] + 1*2[h]0[/h] + 0*2[h]-1[/h] + 0*2[h]-2[/h] + .... + 1*2[h]-11[/h] + ... =
= 2[h]1[/h] + 2[h]0[/h] + 2[h]-11[/h] = 3,00048828125 -
Zitat von Dimitrij
Du hast 0,5 vergessen. Es wird aber trotzdem nie aufhören, da 2,6 nicht exakt dargestellt werden kann.kann man das so begründen, dass in single precision nicht genug Bits vorhanden sind um die Zahl darzustellen?
Oder hat das eine anderen Grund?
dankeschön für die Ausführung. Wozu dient das implizierte Bit?
-
Das implizierte erste Bit verwendet man dafür um sich eine Mantissenstelle zu ersparen. Und zwar indem man einfach voraussetzt, dass vor dem Komma 1 steht (ok, man setzt nicht voraus, sondern IEEE 754 sieht es so vor
Ist genauso wie die "wissenschaftliche" Schreibweise von Zahlen.
zB:
704,50354 => 7,0450354*10[h]2[/h]
0,03248 => 3,248*10[h]-2[/h]nur bei binärzahlen gibts ja nur 0 oder 1, daher kann man die Vorkommastelle weglassen.
-
Achso ja ist logisch...
Unser Prof hat uns gefragt, was die größte und kleinste Zahl ist die mit Single Precision IEEE754 Floating-Point Zahlen dargestellt werden können.
Das ist ja 2^-126 und (2-2^-23)*2^127
Habe ich von hierEr meinte dass es dafür eine triviale Antwort und eine nicht triviale Antwort gibt. Was meint er?
Jetzt mitmachen!
Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!