Discussion:
Normalisierte Gleitpunktdarstellung
(zu alt für eine Antwort)
Jens Müller
2006-08-05 15:52:41 UTC
Permalink
Wie stellt man -5.75 mit normalisierter Mantisse dar?

Das normale Verfahren würde 101001 | 0011 für Mantisse | Exponent
liefern.
An 2. Stelle müsste aber eine 1 stehen, aber 110010 | 0100 stellt doch
eine andere Zahl dar?

Danke und Grüße.
Sebastian Biallas
2006-08-05 16:15:05 UTC
Permalink
Post by Jens Müller
Wie stellt man -5.75 mit normalisierter Mantisse dar?
Das normale Verfahren würde 101001 | 0011 für Mantisse | Exponent liefern.
Ich weiß nicht, was das "normale Verfahren" ist, aber 101.001 kann doch
niemals 5.75 sein.
Post by Jens Müller
An 2. Stelle müsste aber eine 1 stehen,
Warum?
Post by Jens Müller
aber 110010 | 0100 stellt doch
eine andere Zahl dar?
Mit Sicherheit.
--
Gruß,
Sebastian
Jens Müller
2006-08-05 20:21:47 UTC
Permalink
Post by Sebastian Biallas
Ich weiß nicht, was das "normale Verfahren" ist, aber 101.001 kann doch
niemals 5.75 sein.
Ja, die Zahl war falsch, ich meinte -5,875, der Rest bleibt gleich.
Sebastian Biallas
2006-08-06 08:18:08 UTC
Permalink
Post by Jens Müller
Post by Sebastian Biallas
Ich weiß nicht, was das "normale Verfahren" ist, aber 101.001 kann doch
niemals 5.75 sein.
Ja, die Zahl war falsch, ich meinte -5,875, der Rest bleibt gleich.
Dann brauchst Du bei meiner Antwort auch nur 5.75 durch 5.875 zu
ersetzen, der Rest bleibt gleich.
--
Gruß,
Sebastian
Jens Müller
2006-08-06 11:13:27 UTC
Permalink
Post by Sebastian Biallas
Dann brauchst Du bei meiner Antwort auch nur 5.75 durch 5.875 zu
ersetzen, der Rest bleibt gleich.
Deine Antwort sagte aber nicht, wie man diese Mantisse jetzt
normalisieren kann.

Jens
Sebastian Biallas
2006-08-06 11:51:00 UTC
Permalink
Post by Jens Müller
Post by Sebastian Biallas
Dann brauchst Du bei meiner Antwort auch nur 5.75 durch 5.875 zu
ersetzen, der Rest bleibt gleich.
Deine Antwort sagte aber nicht, wie man diese Mantisse jetzt
normalisieren kann.
Zuerst brauchst Du auch die richtige Mantisse, bevor da irgendwas
normalisiert wird. Wenn Du mal vorrechnen könntest, wie Du auf Deine
Werte kommst, kann ich Dir auch sagen, was da wo schiefläuft.
--
Gruß,
Sebastian
Jens Müller
2006-08-06 14:01:58 UTC
Permalink
Post by Sebastian Biallas
Zuerst brauchst Du auch die richtige Mantisse, bevor da irgendwas
normalisiert wird. Wenn Du mal vorrechnen könntest, wie Du auf Deine
Werte kommst, kann ich Dir auch sagen, was da wo schiefläuft.
Ok, 5.75 ist 4+1+1/2+1/4 also binär ist 101.11

Mit einer Mantisse der Länge z.b. 6 und dem ersten Bit für das
Vorzeichen der Mantisse wäre das 0101.11

Jetzt würde man das in Mantisse/Exponenten 2-Komplementdarstellung
verschieben durch den Exponenten 2^3, also
0.10111 * 2^3

Das ist normalisiert, gut.

Will ich nun -5.75 darstellen muss man wohl die Mantisse
komplementieren und 1 addieren, ergibt 101001.

Irgendwas mache ich sicher falsch...
Sebastian Biallas
2006-08-06 15:36:36 UTC
Permalink
Post by Jens Müller
Post by Sebastian Biallas
Zuerst brauchst Du auch die richtige Mantisse, bevor da irgendwas
normalisiert wird. Wenn Du mal vorrechnen könntest, wie Du auf Deine
Werte kommst, kann ich Dir auch sagen, was da wo schiefläuft.
Ok, 5.75 ist 4+1+1/2+1/4 also binär ist 101.11
Das sieht ja schonmal gut aus.
Post by Jens Müller
Mit einer Mantisse der Länge z.b. 6 und dem ersten Bit für das
Vorzeichen der Mantisse wäre das 0101.11
Jetzt würde man das in Mantisse/Exponenten 2-Komplementdarstellung
verschieben durch den Exponenten 2^3, also
0.10111 * 2^3
Ja.
Post by Jens Müller
Das ist normalisiert, gut.
Will ich nun -5.75 darstellen muss man wohl die Mantisse komplementieren
und 1 addieren, ergibt 101001.
Ah! Jetzt verstehe ich, wo diese Zahl überhaupt herkommen soll.
Post by Jens Müller
Irgendwas mache ich sicher falsch...
Ich kenne gar keine Fließkommadarstellung, bei der die Mantisse im
2er-Komplement gespeichert wird. Normalerweise speichert man
Vorzeichenbit getrennt von Mantisse/Exponent.

Allerdings gibt es zwei Arten die Mantisse m zu normalisieren:
1 <= m < 2 und 1/2 <= m < 1. (Also 1.xxxx vs. 0.1xxxx)

Die erste Möglichkeit wird von IEEE 754 verwendet. Da bei beiden
Möglichkeiten eine "1" an einer festgelegten Stelle steht, speichert man
diese nicht explizit mit (spart also ein Bit).


So, ich hab jetzt extra nochmal im Knuth nachgelesen, der erwähnt auch
nur das Vorzeichenbit getrennt von Mantisse/Exponent (und regt sich
darüber auf, das Ding "mantissa" zu nennen). Bist Du sicher, die
Mantisse im 2er-Komplement speichern zu wollen / zu müssen?
--
Gruß,
Sebastian
Jens Müller
2006-08-06 16:40:23 UTC
Permalink
Post by Sebastian Biallas
1 <= m < 2 und 1/2 <= m < 1. (Also 1.xxxx vs. 0.1xxxx)
Die erste Möglichkeit wird von IEEE 754 verwendet.
Ja wir auch.
Post by Sebastian Biallas
Bist Du sicher, die
Mantisse im 2er-Komplement speichern zu wollen / zu müssen?
Das wurde uns so beigebracht/definiert... Es kann schon sein, dass das
dann nicht normalisierbar ist.

Jens
Sebastian Biallas
2006-08-06 17:06:58 UTC
Permalink
Post by Jens Müller
Post by Sebastian Biallas
1 <= m < 2 und 1/2 <= m < 1. (Also 1.xxxx vs. 0.1xxxx)
Die erste Möglichkeit wird von IEEE 754 verwendet.
Ja wir auch.
Dann ist die normalisierte Darstellung aber:
1.0111 * 2^2

Bei der 2. Möglichkeit ist sie:
0.10111 * 2^3
Post by Jens Müller
Post by Sebastian Biallas
Bist Du sicher, die
Mantisse im 2er-Komplement speichern zu wollen / zu müssen?
Das wurde uns so beigebracht/definiert... Es kann schon sein, dass das
dann nicht normalisierbar ist.
Das Normalisieren macht man ja vorher. Da Du aber anscheinend ein
"nicht-standard" Verfahren benutzt, musst Du wohl den genauen Wortlaut
eurer Beschreibung der Darstellung hier posten.

Intuitiv würde ich sagen, dass dann 101001 | 0011 wohl stimmt. Was soll
110010 | 0100 sein? Die Musterlösung? Was meinst Du mit "An 2. Stelle
müsste aber eine 1 stehen"?
--
Gruß,
Sebastian
Loading...