Gleitkommazahlen |
|
Vorzeichenbit 0 -> positiv
biased Exponent = 133, Exponent = 133-127 = 6
Mantisse = (1,)10110001(bin) = 1 + 1/2 + 1/8 + 1/16 + 1/256 = 1.69140625
2^6 * 1.69140625 = 108.25
__________________ Syntax Highlighting fürs Board (Link)
|
|
30.10.2015 06:49 |
|
|
Ratte unregistriert
|
|
Hallo eulersche Zahl! Wiedermal bedanke ich mich bei dir für die Antwort. Was ich jedoch zunächst nicht verstehe ist, woher die 127 kommt die du mit den Exponent subtrahierst?
Zweitena: woher kommdt bitte die 1 vor der nacfkommastelle der mantisse?
Drittens: wieso wird die Zahl am Ende mit 2^6 multipliziert?
|
|
30.10.2015 09:51 |
|
|
|
1. Die 127 ist fest, steht in der Spezifikation. Bei 64bit wird die 127 zu 1023.
2. Das ist das hidden Bit. Man wählt den Exponenten so, dass die Mantisse mit einer 1 beginnt. Also kann man die 1 auch weglassen und Platz sparen.
3. Die 6 ist der Exponent (133-127). Es wird mit 2^Exponent multipliziert.
__________________ Syntax Highlighting fürs Board (Link)
|
|
30.10.2015 10:46 |
|
|
Ratte unregistriert
|
|
Danke eulersche zahl, anders als hinnehmen werde ich diese "sepzifikation" wohl nicht können.
Nachdem ich auch den faktor -3,625 in der Aufgabe ins binärsystem ueberfuhrt habe, wird im weiteren verlauf folgendes verlangt:
B) Geben Sie die einzelnen Schritte an, welche Ihrer Meinung nach für die Multiplikation zweier Gleitkommazahlen relevant sind.
Welche wären das bitte? Werden hier nicht einfach bloß zwei dezimalzahlen miteinander multipliziert? (Gleiche frage zur c.))
(c) Multiplizieren Sie die beiden Gleitkommazahlen. Verwenden Sie dabei die Schrittfolge, welche Sie im Aufgabenteil b) angegeben haben
|
|
30.10.2015 11:32 |
|
|
|
Aber wie läuft das Multiplizieren ab?
Das Vorzeichen ist einfach, das geht mit XOR.
Was passiert mit der Mantisse, was mit dem Exponenten?
__________________ Syntax Highlighting fürs Board (Link)
|
|
30.10.2015 11:49 |
|
|
Ratte unregistriert
|
|
Ich habe mir diverse Videos angeschaut und schon länger gegooglet aber die verschiedenen Ansätze sorgen noch für mehr Verwirrung.
- Mantisse werden miteinander multipliziert? aber inwiefern?, mitsamt den hidden bit(s)? und wird daraufhin das Ergebnis im sinne Dualzahlen addiert?
- Charakteristik werden beide addiert und anschließend mit den Bias Wert subtrahiert?
Ich weiß nicht wie das auszusehen hat, vor allem bin ich mir bei der Mantisse unsicher. Wärst du bitte so gütig und könntest mir es vorrechnen oder eine Beispielrechnung liefern?
Darüber hinaus habe ich ja versucht den Faktor -3,625 in die Gleitkommazahl umzurechnen, könntest du bitte die Rechnung überprüfen? Ich zweifle an der Richtigkeit der Rechnung zumal ich den Beispielen im Internet gefolgt bin, die aber lediglich mit positiven Zahlen gerechnet haben.
Faktor -3,625
- Vorkommazahl umrechnen
3 : 2 = 1,5 R 1
1 : 2 = 0,5 R 1
11
- Nachkommazahl umrechnen
0,625 * 2 = 1,25 R 1
0,25 * 2 = 0,5 R 0
0,5 * 2 = 1 R 1
0 * 2 = 0 R 0
1010
- Mantisse
11,1010
1,11010 * 2^1
- Exponent
1 + 127 = 128 = 1000 0000
Vorzeichen = 1
Exponent = 1000 0000
Mantisse = 1101 0000 0000 0000 0000 000
|
|
01.11.2015 01:12 |
|
|
|
Die Umrechnung von -3.625 ist schonmal richtig.
Nehmen wir als Beispiel doch gleich die beiden Zahlen: 108.25 * (-3.625)
Wir haben die Zahlen in dieser Form: .
Mantisse multiplizieren (mit hidden Bit), Exponent addieren (ohne bias).
0en am Ende der Mantisse habe ich nicht mitgeschrieben.
code: |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
|
0|10000101|10110001 (108.25)
1|10000000|11010000 (-3.625)
Vorzeichen:
0 XOR 1 = 1 (negativ)
Exponent:
10000101
+10000000
-01111111 (bias)
---------
10000110
Mantisse:
1.10110001 * 1.11010000
1 11010000
111010000
111010000
111010000
111010000
12 2222111 Übertrag (dezimal)
-------------------
11.0001000011010000
2 Bit vor dem Komma -> Exponent erhöhen
1|10000111|000100001101 |
|
__________________ Syntax Highlighting fürs Board (Link)
|
|
01.11.2015 07:16 |
|
|
Ratte unregistriert
|
|
Die Erklärung ist wiedermal sehr anschaulich!
Leider muss ich habe ich wieder Fragen dazu:
1. Könnte man was den Exponenten angeht es sich nicht einfacher machrn und die Exppnent in Dezimal addieren also( 2^6, 2^1), 6+1=7, am ende dann exponent erhoehen, 7+1 = 8, 8 + 127 = 135 = 1000 0111?
2. Exponent:
10000101
+10000000
-01111111 (bias)
---------
10000110
Hier habe ich nicht verstanden warum die zweite Spalte eine 1 ergibt? !üsste sie nicht 0 sein? Denn zuvor wurden doch in der ersten Spalte 1 mit eins addiert und somit muesste doch in der nächsten spalte eine eins im Sinn sein?
3. mantisse
Wieso wurde die vorkommastelle um zwei nach links verschoben statt um eins?
000100001101????
|
|
01.11.2015 16:22 |
|
|
|
1.) Ja, kannst du machen.
2.) ich habe zuerst 10000000-01111111 gerechnet. Das ist 00000001.
Also 10000101 um 1 erhöhen, was nicht besonders schwer ist.
3.) Weil ich einen Fehler gemacht habe. Mantisse = 1000100001101
__________________ Syntax Highlighting fürs Board (Link)
|
|
01.11.2015 17:23 |
|
|
Ratte unregistriert
|
|
Deine Beiträge helfen mir wirklich immer von neuem den Sachverhalt zu verstehen! Vielen vielen dank! Schön das es auch hier äußerst hilfsbereite User wie dich hier gibt! Ohne dich wüsste ich nicht was ich machen würde.
(
Ich hoffe ich nerve dich nicht wenn ich mir noch ein- bis zwei weitere Fragen erlaube.
Wir hatten auch was die Mantisse angeht die sogenannte "Normalisierung für vor- und nachkommastellen (unge)packt bzw. Gepackt. "
Leider habe ich denn Sinn\Prinzip dahinter nicht verstanden. Ich hoffe du kannst wieder Licht ins dunkeln bringen.
Oben in der Aufgabe wurde die Kommastelle ja nach links verschoben vor den hidden bit. Wird das Ausnahmslos so gemacht?
|
|
03.11.2015 01:16 |
|
|
|
Die Mantisse wird immer so geschoben, dass genau eine binäre 1 vor dem Komma steht. Der Exponent ergibt sich daraus.
Es gibt eine Ausnahme: denormalisierte Zahlen, um Werte nahe der 0 darstellen zu können. Aber schaue erst mal, dass du die normale Nutzung verstehst.
__________________ Syntax Highlighting fürs Board (Link)
|
|
03.11.2015 07:08 |
|
|
|