Gleitkommazahl |
| 27.04.2020, 06:08 | regenbogen54 | Auf diesen Beitrag antworten » | ||||||
Gleitkommazahl
Ich habe folgende Aufgabe vor mir liegen. (siehe unten (kursiver absatz)) Zunächst einmal wird bei Teilaufgabe a. nur ein 8 Bit Reihe dargestellt. ich Dachte das Gleitkommazahlen entweder 32 bit bzw. 64bit haben. Daher verwirrt mich auch die Bitanzahl der Mantisse und des Exponenten. Laut Skript besteht der Exponent aus 8 und die Mantisse aus 23Bit bei einer 32Bit großen Gleitkommazahl. Wie soll ich bitte den Dezimalwert der Belegung Berechnen? Etwa in Teilstücken? Mantisse - Einfach per euklidischen Algorithmus in Dezimal überführen? falls das richtig ist, wie geht es bitte weiter? und vor allem wie soll ich bei teilaufgabe b die größte dezimalzahl angeben? Soll ich etwa einfach alle 8 Bits auf 1 setzen ich wäre für jede hilfe sehr dankbar.
Aufgabe.) Ein ARA-Student hat eine platzsparende Darstellung von Gleitkommazahlen in einem einzigen Byte entwickelt. Das höchstwertige Bit stellt das Vorzeichen V dar, die vier niedrigstwertigen Bits die Mantisse Mund die drei Bits in der Mitte den Exponenten E. Für alle möglichen binären Belegungen ergibt sich der Dezimalwert Z gemäß folgender Formel a) Berechnen Sie den Dezimalwert der Belegung b) Geben Sie die größte Dezimalzahl an, die mit diesem Gleitkommaformat dargestellt werdenkann. c) Geben Sie die kleinste positive Dezimalzahl an, die mit diesem Gleitkommaformat dargestellt werden kann. d) Welche elementare Zahl kann mit der oben vereinbarten Darstellung nicht dargestellt werden? Begründen Sie Ihre Antwort. |
||||||||
| 27.04.2020, 06:55 | Ulrich Ruhnau | Auf diesen Beitrag antworten » | ||||||
RE: Gleitkommazahl
Meine Vorgehensweise ist so, daß ich mir erst einmal die 4-Byte-Fließkommadarstellung angeschaut habe. Zu a) 1011 0011 Die erste Eins bedeutet negatives Vorzeichen. Die nachfolgenden 011 stellen den Exponenten dar und bedeuten als Faktor. Die rechten 0011 bedeuten . Daher lautet der kodierte Wert . |
||||||||
| 27.04.2020, 10:29 | regenbogen54 | Auf diesen Beitrag antworten » | ||||||
| RE: Gleitkommazahl danke für dein beitrag, Ulrich! was bedeutet bitte die als faktor?. Meinst du damit etwa ? und die 1. vor der kommastelle lässt sich bitte wo heraus schlussfolgern?
|
||||||||
| 27.04.2020, 11:19 | HAL 9000 | Auf diesen Beitrag antworten » | ||||||
Das hast du selbst so festgelegt:
Was im übrigen eine übliche und sinnvolle Festlegung bei binären Fließkommazahlen ist (spart die Speicherung eines Mantisse-Bits). |
||||||||
| 27.04.2020, 11:25 | regenbogen54 | Auf diesen Beitrag antworten » | ||||||
vielen Dank, Hal. jetzt steht noch die Frage aus wie Ulrich darauf kommt das die die ergibt?
sind außerdem meine überlegung zu teilaufgabe b, richtig? b) Geben Sie die größte Dezimalzahl an, die mit diesem Gleitkommaformat dargestellt werden kann. Oder wie kann man bitte die größte dezimal zahl als gleitkommaformat darstellen? |
||||||||
| 27.04.2020, 11:40 | HAL 9000 | Auf diesen Beitrag antworten » | ||||||
Ich weiß ehrlich gesagt nicht, was das in deiner Formel bedeutet: Die drei Exponentenbits 011 bedeuten zunächst dezimal 3. Ob das nun direkt dein ist oder ob (wie bei den meisten Fließkommaformaten) da noch ein fester Offset subtrahiert wird, entzieht sich meiner Kenntnis - da du nichts darüber geschrieben hast, würde ich zunächst dann doch von Offset=0 ausgehen, d.h. Faktor . P.S.: Möglicherweise ist Ulrich Ruhnau von der oft anzutreffenden Annahme ausgegangen, dass bei insgesamt Exponentenbits der zu subtrahierende Offset gleich ist. Das ist in deinem Fall dann Offset , womit sich tatsächlich ergeben würde. Besser wäre es natürlich, wenn das aus deinem Aufgabentext so herauslesbar wäre... |
||||||||
| Anzeige | ||||||||
|
|
||||||||
| 27.04.2020, 11:50 | regenbogen54 | Auf diesen Beitrag antworten » | ||||||
also das soll glaube ich für zweierkomplement stehen. Wenn wir jetzt jedoch mal die invertieren, also und die +1 dazu addieren: , wäre das ja in dezimal . Wie kommt dann bitte ulrich auf die ? und was meinst du bitte mit Offset? |
||||||||
| 27.04.2020, 12:07 | HAL 9000 | Auf diesen Beitrag antworten » | ||||||
Wenn das oberste Bit einer Zweierkomplementzahl gleich 0 ist, dann entspricht die Zweierkomplementzahl der vorzeichenlosen Zahl, welche die Restbits darstellen, d.h. in deinem Fall 011 doch schlicht . Genauer gesagt gibt es dann folgende Zuordnung der Exponentenbits zu den Exponentenwerten 000 : 001 : 010 : 011 : 100 : 101 : 110 : 111 :
Das habe ich doch oben erläutert:
|
||||||||
| 27.04.2020, 12:36 | regenbogen54 | Auf diesen Beitrag antworten » | ||||||
ich habe angenommen das eine zweierkomplementzahl eine dualzahl ist die bereits invertiert und mit der zahl 1 addiert worden ist. die 011 ist aber doch "noch" keine zweierkomplementzahl, oder täusche ich mich? Darf ich außerdem fragen woher diese annahme rührt "oberste Bit einer zweierkomplementzahl = 0" ?
du hast mit verlaub geschrieben das da möglicherweise mit den offset gerechnet werden würde, aber du hast mir bislang noch nicht erklärt was das ist oder wozu das gut sein soll?
|
||||||||
| 27.04.2020, 13:32 | HAL 9000 | Auf diesen Beitrag antworten » | ||||||
Wie ich das gemeint habe, habe ich m.E. deutlich beschrieben, sogar zweimal. Deswegen finde ich das mit dem "noch nicht erklärt" eine ziemlich unverfrorene Unterstellung. Warum man das macht, d.h. wozu das "gut" ist? Lies dir das hier durch: https://de.wikipedia.org/wiki/IEEE_754 Speziell die Abschnitte, die sich mit dem Exponenten befassen. |
||||||||
| 27.04.2020, 17:22 | Ulrich Ruhnau | Auf diesen Beitrag antworten » | ||||||
Des Rätsels Lösung: Es handelt sich um einen Bias. Die Null wird zum Bias hinzuaddiert und ergibt unverändert den Bias. Nun könntest Du fragen, wie ich gerade auf diesen Bias komme. Nun auf der IEEE-754 Konverter-Seite habe ich ein bisschen herumprobiert und versucht, das gefundene auf den 3-Bit-Exponenten zu adaptieren. Und dann hat man statt 127 eine 3 als Bias-Wert. Ob das dem Sinn der Aufgabe entspricht, weiß ich nicht mit Sicherheit zu sagen. Ich bin nur davon ausgegangen, daß es bei der Aufgabe darum geht, die in den Prozessoren implementierte Intel-Arithmetik zu verstehen. Und dann darf man vielleicht annehmen, das sich alles ähnlich verhält. |
||||||||
| 27.04.2020, 17:50 | regenbogen54 | Auf diesen Beitrag antworten » | ||||||
danke an euch beiden! das wäre also das ergebnis der teilaufgabe a? Fällt euch des Weiteren etwas zur teilaufgabe b ein? b) Geben Sie die größte Dezimalzahl an, die mit diesem Gleitkommaformat dargestellt werden kann.
|
||||||||
| 27.04.2020, 19:03 | Ulrich Ruhnau | Auf diesen Beitrag antworten » | ||||||
Dazu fällt mir ein, daß ich im Internet ja den Simulator gefunden habe, mit dem ich ausprobieren kann, welche größte Zahl ich noch sinnvoll darstellen kann. Wenn alle Bits des Exponenten gesetzt sind, ist der Wert anscheinend ungültig (Not A Number). Aber prüfe das noch mal! Also ist der größte Exponent bei 8 Exponentenbits 254. Das ist 127 Zweierpotenzen höher als der Bias (Offset wie man im deutschen sagt). Die größtmögliche Zahl, die damit dargestellt werden kann beträgt theoretisch wie ich durch herumspielen herausgefunden habe, wobei nur die halbe Genauigkeit realisiert wird. Auch konnte ich diesen Wert im Internet wiederfinden. Adaptiert auf unseren Fall bedeutet das , wobei ich mir keineswegs sicher bin. Aber es ist ja Deine Aufgabe. Überlege Dir also, was 01101111 darstellen könnte! |
||||||||
| 27.04.2020, 19:07 | HAL 9000 | Auf diesen Beitrag antworten » | ||||||
@Ulrich Ruhnau regenbogen54 hat ja erklärt, wie sein Format zu verstehen ist. Das ist insbesondere kein IEEE754-Format, denn es reserviert keinen Platz für Sonderkodierungen wie NaN, Infs und auch keinen Platz für die Kodierung der Null... upps (Spoiler-Alarm). |
||||||||
| 27.04.2020, 20:09 | Ulrich Ruhnau | Auf diesen Beitrag antworten » | ||||||
Dann muß sich Regenbogen54 überlegen, was 01111111 darstellen könnte. |
||||||||
| 27.04.2020, 20:32 | HAL 9000 | Auf diesen Beitrag antworten » | ||||||
Ich wüsste jetzt nicht, was 01111111 besonders auszeichnet - jedenfalls keinen der (betrags-)größten oder kleinsten Werte. Schon eher 00111111 01000000 im Bereich der positiven, und entsprechend 11000000 und 10111111 im Bereich der negativen Zahlen. |
||||||||
|
|
Verwandte Themen
| Die Beliebtesten » |
|
| Die Größten » |
|
| Die Neuesten » |
