Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » Gleitkomma und Festkomma

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
05.09.2005, 12:16 Uhr
Incubus



Hallo,

ich bin Anfänger, fange gerade mit meinem Informatikstudium an und hätte gerne den Unterschied zwischen Festkomma und Gleitkommazahlen gewusst. Im Bezug auf den Speicherplatz.
Kann mir jemand erklären warum ich mit Gleitkommazahlen einen größeren Speicherplatz habe
Was bedeutet Mantisse ?


Festkomma-Zahlen (fixed points):
Hierbei ist die darzustellende Zahl durch n1 Stellen vor und n2 Stellen nach dem (Dezimal-, Dual-
,. . .)Punkt fixiert.
Beispiel. F¨ur n1 = 3, n2 = 6 wird die Dezimalzahl 30.43 dargestellt durch 030.430000.

Gleitkomma

− 0.84321 × 10 hoch4 Exponent e = 4


Vorzeichen Mantisse Basis

Danke im Voraus
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
05.09.2005, 12:36 Uhr
imhotep
followed the white rabbit


Bei Gleitkommazahlen werden 2 Zahlen in einem gespeicht, nämlich die Basis und die Mantisse, dadurch ist der größere Speicherplatz zu erklären. Was man macht, ist im Prinzip, das man eine Zahl der Art speichert, das immer die Basis als kleinergleich 1 und größer gleich 0 gespeichter wird. Die Mantisse ist der Exponent von 10.
Bsp.:
99 wird so zu Basis 0,99 und Mantisse 2, also 0,99 * 10^2 = 99
0,0017 wird zu Basis 0,17 und Mantisse -2 also 0,17 * 10^-2 = 0,0017

Vorteil ist, dass man so Speicherplatz spart und einen größeren Zahlenbereich abdeckt. Sonst müsste man ja vorgeben, dass x Vorkommastellen und y Nachkommastellen da sind. Das verwendete System muss keine Formatinformationen zur Basis speichern, da das Format vorgeschrieben ist.
Beim Rechnen wird das Format transformiert, je nach Rechenoperation und dann wieder zurück. Wirst du in deinem Studium noch kennenlernen, wenns um Numerik geht.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
05.09.2005, 14:00 Uhr
virtual
Sexiest Bit alive
(Operator)


Nur so nebenbei:

Festkommazahlen sind nicht zwingend kleiner als Fließkommazahlen, jedenfalls nicht hinsichtluch des Speicherplatzes: vgl etwa auf einem 32 Bit System float mit long: beide haben gleiche Größen.

Ansonsten stimmt schon das, was imhotep geschrieben, Allerdings solltest Du im Hinterkopf behalten, daß die Exponenten im Dualsystem gerechnet werden, dh der Exponent wird intern als 2er Potenz abgelegt (die 10er Potenz ist eine Darstellungsform).

Auch sollte man erwähnen, daß Fließkommazahlen wegen der bereits erwähnten Komprimierten Darstellung nur eine geringe Genauigkeit haben: Im IEEE754 Standard etwa sind für die Mantisse nur 23 Bit vorgesehen. Man kann damit also nur 2^23 Verschiedene Werte unterscheiden, so daß Fließkommazahlen, die auf diesen Standard basieren letztlich nur 6-7 Genau stellen haben. Dh die Zahlen 1234567.6 und 1234567.61 sind u.U. nicht mehr unterscheidbar. Insgesamt sind Fließkommazahlen seeehr ungenau, dh man fällt oft auf die Nase, wenn man selbige miteinander vergleicht.
--
Gruß, virtual
Quote of the Month
Ich eß' nur was ein Gesicht hat (Creme 21)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
06.09.2005, 08:15 Uhr
Incubus



Ich danke euch

Gruß
Incubus
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
07.09.2005, 00:08 Uhr
Hans
Library Walker
(Operator)


Hi,

Zitat von imhotep:
Bei Gleitkommazahlen werden 2 Zahlen in einem gespeicht, nämlich die Basis und die Mantisse, dadurch ist der größere Speicherplatz zu erklären. Was man macht, ist im Prinzip, das man eine Zahl der Art speichert, das immer die Basis als kleinergleich 1 und größer gleich 0 gespeichter wird. Die Mantisse ist der Exponent von 10.


Da hast du Dich aber vertan. Was auf den Bereich zwischen 0 und 1 gebracht wird, ist die Mantisse. Der Exponent gibt an, wie oft die Basis mit sich selbst multipliziert wird. D.h. die Darstellung ist: Mantisse mal Basis hoch Exponent


Zitat von imhotep:
Bsp.:
99 wird so zu Basis 0,99 und Mantisse 2, also 0,99 * 10^2 = 99
0,0017 wird zu Basis 0,17 und Mantisse -2 also 0,17 * 10^-2 = 0,0017


Nyet!
Zum ersten Beispiel: Die 0,99 ist die Mantisse, der Exponent ist die 2, und die Basis 10.
Zum zweiten Beispiel: Die 0,17 ist die Mantisse, der Exponent ist die -2, und die Basis wieder 10.

Nichts für ungut, aber das musste ich richtig stellen.

Hans
--
Man muss nicht alles wissen, aber man sollte wissen, wo es steht. Zum Beispiel hier: Nachdenkseiten oder Infoportal Globalisierung.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
07.09.2005, 01:05 Uhr
imhotep
followed the white rabbit


Hab mal meinen Bartsch gefragt, um hier nicht grundlos böse Dinge zu schreiben. Stimmt, da hab ich mich vertan. Zum Glück konnte ich mich noch richtig an das Prinzip erinnern (und das ohne Bartsch )
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
08.09.2005, 03:08 Uhr
Hans
Library Walker
(Operator)


Hi,

ich wollte Dir auch nicht auf die Füsse treten.
Was den "Bartsch" angeht, wenn du diesen hier:



meinst, der hat mir auch schon oft geholfen.

Hans
--
Man muss nicht alles wissen, aber man sollte wissen, wo es steht. Zum Beispiel hier: Nachdenkseiten oder Infoportal Globalisierung.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: