1. Startseite >
  2. Wissenschaft & Mathematik >
  3. Mathematik >
  4. Gelöste Frage
Luca Luca
Mitglied seit:
19.November 2008
Gesamtpunkte:
162 (Level 1)

Gelöste Frage

Nächste Frage »

Normalisierte Gleitkomma Darstellung?

Ich soll eine unendliche Dualzahl als normalisierte Gleitkommazahl zur Basis 2 darstellen und diese nach 8 Nachkommastellen a) abschneiden b) runden.
Anschließend soll ich den relativen Feheler der Dualzahl ermitteln.

Bsp. 0,1 Basis 10= Dualzahl: (0,00011001...) Basis 2

Wie schreibt man eine Dualzahl als norm. Gleitkommazahl ????
  • vor 3 Wochen
Dorthiven by Dorthive...
Mitglied seit:
28.Oktober 2009
Gesamtpunkte:
932 (Level 2)

Beste Antwort - Ausgewählt durch Abstimmung

Ich gehe davon aus, dass du grundsätzlich die Gleitkommadarstellungen verstehen willst. Dazu empfehle ich dir erstmal diesen Link, wo auch Beispiele zu sehen sind:

http://de.wikipedia.org/wiki/IEEE754

Wie du ja schon geschrieben hast, ist 0,1 (Dezimal) gleich 0,0_0011_ im Dualsystem (Periode markiert mit "_").

Das kann man auch sehr schnell nachrechnen, du nimmst einfach den Nachkommateil der Dezimalzahl -- von 0,1 also 1 -- und multiplizierst diesen fortwährend mit 2, wobei die höheren Stellen jeweils abgeschnitten werden. Falls die erste Stelle der Zahl >= 5 ist, schreibt man eine 1; falls kleiner, eine 0. Irgendwann kommt dann eine Periode raus. Also im Fall von 0,1 so:

1 --> 0
2 --> 0
4 --> 0
8 --> 1
6 --> 1
2 --> (die 2 war schon mal da, ab dort ist also die Periode.)

Somit ergibt sich der Nachkommateil im Dualsystem von oben nach unten gelesen: 0_0011_

Und mit dem Vorkommateil haben wir jetzt: 0,0_0011_

So. Die Normalisierung bedeutet nun, dass vor dem Komma genau eine 1 stehen muss, und sonst nichts, d.h. du musst den entsprechenden Zweier-Exponenten herausfinden, sodass diese Bedingung erfüllt wird. Einfacher gesagt, du musst um eine Anzahl von Stellen entweder Linksschieben oder Rechtsschieben.

Im Fall von 0,0_0011_ sieht man sofort, dass man um 4 Stellen nach links schieben muss. Es ergibt sich:

0,0_0011_

= 1,1_0011_ * 2^(-4)

Der Exponent -4 ist also die gesuchte Zahl bei der Normalisierung. Du hast jetzt also eine normalisierte Gleitkommadarstellung mit Vorzeichen, Mantisse und Exponent.

Das Abschneiden nach 8 Nachkommastellen ist jetzt einfach, es ergibt sich:

1,10011001 * 2^(-4)

Um den relativen Fehler hierbei festzustellen, kann die Zahl wieder ins Dezimalsystem umgerechnet werden, also:

1,10011001 * 2^(-4)
= 110011001 * 2^(-12)
= 409 * 2^(-12) (dezimal)
= 0,099853515625

Die Abweichung von 0,1 beträgt also ca. -0,15%.

Beim Runden müsste man meines Wissens hier auf die nächste darstellbare Zahl aufrunden, weil die Nachkommastellen ab der 9. Stelle 1_0011_ sind, also größer als 0,5. Also hätten wir dann:

1,10011010 * 2^(-4)

Umgewandelt ins Dezimalsystem ergibt sich:

1,10011010 * 2^(-4)
= 110011010 * 2^(-12)

= 410 * 2^(-12) (dezimal)
= 0,10009765625

Die Abweichung von 0,1 beträgt also ca. +0,10%.

Das Runden war natürlich besser.
  • vor 3 Wochen
100% 3 Stimmen

Es sind derzeit keine Kommentar zu dieser Frage vorhanden.

Weitere Antworten (0)

Keine anderen Antworten.

Clever International

Die Inhalte von Yahoo! Clever werden nicht von Yahoo! geprüft. Die Richtigkeit der Inhalte wird nicht gewährleistet. Klicken Sie hier für die vollständigen rechtlichen Hinweise.

Helfen Sie uns, Yahoo! Clever zu verbessern. Sagen Sie uns Ihre Meinung.