Gleitkommazahlen - Exponentenüberlauf

Benutzeravatar
itportal2
Sonntagsinformatiker
Sonntagsinformatiker
Beiträge: 236
Registriert: 25. Jan 2008 15:34
Wohnort: Darmstadt

Gleitkommazahlen - Exponentenüberlauf

Beitrag von itportal2 »

Hallo,

Ich versuche einfach 2 normale Gleitkommazahlen zu multiplizieren. Ich komme aber fast immer zu Exponentenüberlauf.

z.B.

6,25 = 0 1000 0001 1001 0000 0000 ...
1,25 = 0 0111 1111 0100 0000 0000 ...

Das Ergebnis soll 7,8125 sein. Und es ist mit 32 bits darstellbar. Gibt es eine Möglichkeit diese Überlauf zu behandeln und das korrekte Ergebnis haben?

Ok, wenn wir eine Zahl > 2 haben. Dann wird für die Vorkommastellen mind. 2 bits gebraucht. D.h. wür müssen danach nach rechts schieben. Das führt zu erhöhung der Exponente um mind. 1. 127+1 = 128. Zwei solche Zahlen können dann nie multiplizert werden, weil 128+128 = 256. Das wird zu Exponentenüberlauf führen. Bin ich richtig oder falsch?

Benutzeravatar
itportal2
Sonntagsinformatiker
Sonntagsinformatiker
Beiträge: 236
Registriert: 25. Jan 2008 15:34
Wohnort: Darmstadt

Re: Gleitkommazahlen - Exponentenüberlauf

Beitrag von itportal2 »

Ach .. man muss 127 aus der Exponente abziehen. Stimmt, stimmt. :)

tmx-master
Sonntagsinformatiker
Sonntagsinformatiker
Beiträge: 253
Registriert: 25. Okt 2006 17:44

Re: Gleitkommazahlen - Exponentenüberlauf

Beitrag von tmx-master »

itportal2 hat geschrieben:Hallo,
Ich versuche einfach 2 normale Gleitkommazahlen zu multiplizieren. Ich komme aber fast immer zu Exponentenüberlauf.
z.B.
6,25 = 0 1000 0001 1001 0000 0000 ...
1,25 = 0 0111 1111 0100 0000 0000 ...
Das Ergebnis soll 7,8125 sein. Und es ist mit 32 bits darstellbar. Gibt es eine Möglichkeit diese Überlauf zu behandeln und das korrekte Ergebnis haben?
Hi, ich glaube das mit dem +127 verwirrt hier nur. Mach es einfacher:

6,25 = 1,1001 * 2^2
1,25 = 1,01 * 2^0
-> Ex(Produkt) = 2 + 0 = 2

Jetzt 1,1001 * 1,01 rechnen. Das ergibt: 1,111101.

Mit dem Ex(Produkt) ist das Ergebnis dann: 1,111101 * 2^2 = 111,1101 * 2^0 (Das ergibt Dezimal: 7,8125 -> Korrekt)

Für die Darstellung als GKZ kannst du jetzt den Ex(Produkt) nutzen, um den Exponenten für die GKZ zu bestimmen: Ex = 2+127 = 129*

Als GKZ würde das Ergebnis dann so geschrieben werden:
0 1000 0001 1110100....

* Erst wenn sich hier ergibt, dass Ex > 255 oder Ex < 0 wird, dann kannst du einen Über- oder Unterlauf festhalten. Das ist insgesamt so aus meiner Sicht die einfachste Rechenweise.
Zuletzt geändert von tmx-master am 26. Sep 2008 12:49, insgesamt 1-mal geändert.
Gruß TM

Benutzeravatar
itportal2
Sonntagsinformatiker
Sonntagsinformatiker
Beiträge: 236
Registriert: 25. Jan 2008 15:34
Wohnort: Darmstadt

Re: Gleitkommazahlen - Exponentenüberlauf

Beitrag von itportal2 »

Müssen wir eigentlich bei der Klausur immer als Binärzahlen rechnen. Ich glaube ich habe eine Übung gesehen und da waren diese Exponenten- und Mantissenberechnungen in Dezimalzahlen gemacht.

tmx-master
Sonntagsinformatiker
Sonntagsinformatiker
Beiträge: 253
Registriert: 25. Okt 2006 17:44

Re: Gleitkommazahlen - Exponentenüberlauf

Beitrag von tmx-master »

itportal2 hat geschrieben:Müssen wir eigentlich bei der Klausur immer als Binärzahlen rechnen. Ich glaube ich habe eine Übung gesehen und da waren diese Exponenten- und Mantissenberechnungen in Dezimalzahlen gemacht.
Das geht natürlich auch. Es muss schon in der Aufgabenstellung eindeutig angegeben sein, was gewünscht ist. Wenn das unklar ist, würde ich auf jeden Fall sofort nachfragen. Es muss auch klar formuliert sein, wie das Ergebnis darzustellen ist. Als Binärzahl oder als GKZ, denn das ist ja ein weiterer Schritt dazu.
Gruß TM

Antworten

Zurück zu „Archiv“