Binärzahlen mit IEEE 754 umrechnen

Hallo Gemeinde!

Ich bin mitlerweile echt am verzweifeln bei einer Aufgabe zur umrechnung von Binärzahlen in Dezimalzahlen.

Also gegeben sind
0 10000001 1100 0000 0000 0000 0000 000(2)
und
0 10000000 1000 0000 0000 0000 0000 000(2)

(2) Halt als kennung für Binärzahl
In der letzten Vorlesung ist der Prof auf Mantissen, Exponenten, Vorzeichen etc. bei Binärzahlen eingegangen, allerdings hab ich das noch nicht so wirklich ganz verstanden (Ich studiere auch kein Informatik, aber ich muss halt den Kurs belegen)

Alle meine Komilitonen rechnen halt die Zahl stur durch, so das Ich bisher fast von jeden 1088421888 (Zahl 1) gehört hab.
Allerdings geben sich bei mir da Zweifel auf wegen diesem IEEE 754.

Ich hab einfach mal ausprobiert im folgenden Rechner: Gleitkommazahlen nach IEEE-754
Hier per Brutforce Methode paar Zahlen eingehauen bis der Rechner schlussendlich die Identischen Zahlen als Binärzahlen (Siehe oben) ausgespuckt hat.
Ergebnis 7 (Zahl 1) und 3 (Zahl 2) mit Short real (32 Bit)

Um endlich auf meine Frage(n) zu kommen:

Was ist jetz richtig? Meine Zahl oder die meiner Komilitonen?
Wenn meine richtig ist: Warum?^^ (Also wie komm ich da drauf, ich habs ja einfach nur durch ausprobieren bekommen, hab aber kein plan wie mans umrechnet, vorallem nicht von Binär auf Dezimal da ja der Rechner nur Dezimal auf Binär kann)
Wenn die andere richtig ist: Warum ist meine Zahl falsch bzw. was soll der Rechner oder dieses IEEE 754?

Die Aufgabe geht auch noch weiter, aber ich denke ich benötige erst einmal ein Grundverständniss wie das nun genau funktioniert.
Hoffe mir kann irgendwer weiterhelfen!

Grüße Vultus
 
Zuletzt bearbeitet:
Hallo Vultus,
kurz und knapp: Du hast Recht!

Die Zahl 1088421888 würde rauskommen, wenn deine Binärzahl eine einfach 32-Bit Zahl ist, also das linke Bit das MSB 2^31 ist und das rechte Bit LSB ist 2^0.

Die Darstellung deiner Zahl zeigt schon, dass es eine Gleitkommazahl nach IEE 754 sein soll.

0 10000001 1100 0000 0000 0000 0000 000
Das erste Bit ist das Vorzeichen Bit. 0 = Positiv, 1 = Negativ.
Als nächstes folgt der 8-Bit Lange Exponent 10000001. Diesen musst du nun umrechnen: 10000001 ist als Dezimalzahl 129. (2^7 + 2^0). Jetzt musst du noch deinen Bias abziehen: 129 - 2^8 = 2.
Das heißt 2 ist dein Exponent.

Deine Zahl wird normalisiert sein, d.h. als 1,... Darstellung sein. Also:
1, 1100 0000 0000 0000 0000 000. Da dein Exponent 2 ist, musst du das Komma um 2 Stellen nach rechts verschieben also:
111, 00 0000 0000 0000 0000 000
111 ist in Dezimal eine 7 und die ganzen 0en sind eben auch als Dezimal 0 sprich die Zahl die rauskommt ist: 7,0 oder eben 7, wie von dir korrekt erkannt
 
Zuletzt bearbeitet:
Hallo Tsjuder,

vielen dank für die schnelle hilfe :)
Schonmal gut das ich richtig lag, auch wenn mir das rechensystem überhaupt nicht gefällt von diesen Binärzahlen *g*

Ok evtl. ist es etwas zu viel aber wie gesagt die Aufgabe geht noch weiter:

Dividieren der errechneten Zahlen, dann in Exponentenschreibweise mit acht Stellen der Mantisse angeben
Klingt (find ich) ganz einfach auf dem ersten blick, hab einfach 7 / 3 geteilt = 2,3 (Periode)
Die exponentenschreibweise mit der 8 Mantisse stell ich mir folgenderweise vor: 2,33333333 *10^0
Evtl. bin ich auch wieder nur auf dem Holzweg.

Ergebnis als Fließkommazahl im Binärsystem darstellen (Wieder IEEE). Angeben: Ist Ergebnis exakt darstellbar bzw. wie groß der Fehler etwa ist.
Hier bin ich mir wieder unsicher, ich würd die Zahl jetz einfach "zurückführen" ins Binärsystem.
0 10000000 00101010101010101010101
Meine Erklärung: die Zahl weicht ab weil sie halt durch die 32 Bit beschränkt ist (Wenns sogar nur 8 Mantisse sein sollen,werdens ja sogar noch weniger Zahlen und dadurch noch ungenauer, aber keine ahnung ob das hier noch berücksichtigung findet)
Man kanns ja überprüfen indem man ein paar mal hin und her rechnet, denk ich mal.

Grüße
 
Zuletzt bearbeitet:
Ich finde die Aufabenbeschreibung gerade ein wenig verwirrend.

Zahle dividieren: 7/3...joa. Mit acht Stellen in der Mantisse ist das eben wie du geschrieben hast, aber wieso als Exponentdarstellung? Durch das *10^0 und keiner Angabe der Periode wird die Zahl doch schon ungenauer.

Die Binärzahl sieht richtig aus. Das Ergebnis ist eben nicht exakt, weil du eine Periode, also unendlich(!) viele Nachkommastellen, eben nicht in die 32-Bit bekommst. Die acht Stellen Mantisse wird im Zusammenhang wichtig, weil du tatsächlich nur 2,3333333 darstellen kannst und es keinen Unterschied mehr zu 2,33333333 gibt usw. Also hast du eine Abweichung von 0,000000033333 (Periode eben).

Den Fehler kannste dann natürlich auch noch in Prozent ausrechnen.
 
Zuletzt bearbeitet:
Du bist nicht der erste der das verwirrend findet ;)

Keine ahnung warum exponentenschreibweise, das besagt halt die Aufgabe. Man kann ja das Komma ein bisschen hin und her verschieben, macht aber denk ich keinen Sinn.

Sieht ja jetz alles ganz gut aus (Jedenfalls aus meiner Sicht) Ich denke das schmück ich jetz noch ein wenig aus mit Rechenweg etc.

Vielen lieben dank für die Hilfe!
 
Zurück
Oben