Theoretische und technische Informatik - ganz praktisch
Herzlich willkommen auf der Question/Answer-Plattform zu Grundlagen der Informatik II. Wir wünschen Ihnen viel Spaß beim Lernen und Diskutieren!
Loggen Sie sich mit Ihrem KIT-Account (u...) ein, um loszulegen!
Beachten Sie auch diese Informationen zum Schnelleinstieg.
(Nicht-KIT-Studierende beachten bitte diese Informationen.)

Unterschied Gleit- und Festpunktzahl?

+1 Punkt
1,218 Aufrufe
gibt es einen Unterschied zwischen Gleit- und Festpunktzahl?
bezieht sich auf eine Antwort auf: Bezeichnung des Tricks?
Gefragt 29, Sep 2015 in 2005-B-03 von uafjv uafjv Tutor(in) (167,990 Punkte)  

Eine Antwort

+1 Punkt

Ja. Schau dir am besten die Vorlesungsfolien oder Anwesenheitsübungsblatt 5, Aufgabe 4 an. Dort soll man die Zahlen jeweils als Gleitpunktzahl und als Fixpunktzahl darstellen, so dass man den direkten Vergleich hat.

Wenn du dann noch allgemeine Fragen hast, geh am Besten in eins der verbleibenden Fragetutorien, da kann man solche Fragen wesentlich einfacher und besser beantworten (z.b. ist meins am Freitag um 15.45 in 231)

Auf Verdacht Gleit- und Festpunktdarstellung komplett zu erklären, gibt einen langen Post, von dem vermtl. nur die Hälfte notwendig gewesen wäre... In einem echten Gespräch kann man dagegen auf die Reaktion des Gesprächspartners reagieren und du kannst direkt nachfragen. Das soll nicht heißen, dass du nicht auch über das Forum fragen darfst...

Gruß,

Tobias (Tutor)

 

Beantwortet 29, Sep 2015 von uafjv uafjv Tutor(in) (167,990 Punkte)  
Okay, danke :)

Angenommen, ich hätte jetzt 1,1 wäre das dann so richtig:

1,1 = 00000001,00011001...

--> Gleitpunktzahl nach IEEE-754: (-1)^0 * 2^(128-127) * (1+∑ [2^(-4k-1) + 2^(-4k-2)] )

wobei ∑ von k=1 bis n geht.

--> 2-Komplement einer Festpunktzahl mit 8 Vor-& Nachpunktstellen:

11111110.01100110

(Bin mir hier nicht ganz sicher, ob ich nach dem Punkt das mit dem +1 richtig gemacht habe...?)
Bei deiner Gleitpunktzahl stimmen die Hochzahlen nicht (es muss -4k und -4k-1 heißen, damit es konsistent zu deiner Zerlegung ist, d.h. \( 1.1 = 1 + 2^{-4} + 2^{-5} + 2^{-8} + 2^{-9} + .... \)

Bei der 2-Komplement-Darstellung muss man nur dann das Komplement bilden, wenn die Zahl negativ ist.

Wenn man z.B. -1.1 darstellen will, muss man alle Bits kippen und ganz rechts eine 1 addieren:

0000 0001.0001 1001 (das ist die + 1.1 als festpunkzahl mit 8 Vor- und Nachpunktstellen)

kippen:

1111 1110.1110 0110

                           + 1

1111 1110.1110 0111

Bei der Gleitpunktzahl müsstest du Vorzeichen, Charakteristik und Mantisse noch als  Bitstring (in 0 und 1) hintereinander aufschreiben.

Gruß,

Tobias (Tutor)
Ah okay, wäre dann in diesem Fall die 2-Komplement-Darstellung genau gleich, wie die Gleitpunktzahl nach IEEE (dh weder Bits flippen, noch 1 aufaddieren) ?

Ist das dann richtig so für die Gleitpunktzahl: 0 01111111 00011001100110011001100

Gruß
Deine Gleitpunktzahl entspricht ziemlich genau 1.1 (so gut man es eben approximieren kann)

Wenn du meinst, dass der Nachkommateil der Fixpunktdarstellung (abgesehen von der Länge) dem Anfang von m' der Gleitpunktdarstellung entspricht, hast du in diesem Sonderfall (c=0, positive Zahl) recht. Die  Darstellung der gesamten Zahl ist aber unterschiedlich.

Das ist aber wirklich ein Sonderfall, in den meisten Fällen stimmt das nicht! Nur die Zerlegung der Zahl in eine Summe Zweierpotenzen ist unabhängig von der Codierung, alles was danach kommt, ist von der Codierung abhängig (d.h. wie man diese Summe von Potenzen in 0 und 1 codiert) ! Bei Gleitpunktzahlen werden die Bits nie geflippt.

Gruß,

Tobias (Tutor)
Was meinst du mit "Die Darstellung der gesamten Zahl ist unterschiedlich" ? Könntest du mal schreiben, wie genau in diesem Fall das 2-Komplement der Festpunktzahl aussieht? Ich glaube so gehts am schnellsten ;)
1.1 als Gleitpunktzahl mit 32 Bit:

0 01111111 00011001100110011001100

1.1 als Fixpunktzahl mit 16 Vor- und 16 Nachkommastellen:

0000 0000 0000 0001.0001 1001 1001 1001

-1.1 als Fixpunktzahl mit 16 Vor- und 16 Nachkommastellen (das 2-Komplement von 1.1, s.o.):

1111 1111 1111 1110.1110 0110 0110 0111

wobei der Computer weder Leerzeichen noch den Punkt speichern würde...

Tobias (Tutor)

PS ich würde dir wirklich empfehlen, mit solchen Fragen in eines der Fragetutorien zu gehen. Da hast einen Tutor 90 min für dich (je nach dem, wer noch kommt, fast) allein.
...