IEEE Format und BoolAlg < Algor.+Datenstr. < Theoretische Inform. < Hochschule < Informatik < Vorhilfe
|
Status: |
(Frage) beantwortet | Datum: | 15:26 Mi 08.11.2006 | Autor: | diecky |
Aufgabe | (b) Berechnen Sie im Dualsystem das Produkt der beiden dargestellten Zahlen. Stellen Sie das Ergebnis wieder im IEEE Format dar.
i) 11000001111011010000000000000000
ii)10111110010100000000000000000000
(c) Berechnen Sie im Dualsystem die Summe der beiden dargestellten Zahlen. Stellen Sie das Ergebnis wieder im IEEE-Format dar.
i) 11000001111011010000000000000000
ii)10111110010100000000000000000000
(d) Bringen Sie die folgende Formel auf eine möglichst kompakte Form unter Verwendung der Gesetze einer Booleschen Algebra.
[mm] (a*(a*(c+\overline{c}))+(a*b))*\overline{(\overline{b}*\overline{c})}
[/mm]
|
Zu Aufgabe b und c:
Wie muss ich da vorgehen?
Muss ich einfach die beiden Zahlen nehmen und addieren bzw multiplizieren oder muss ich zuerst die Zahl vereinfachen? Weil mir das mit den ganzen 00000 was viel vorkommt, gerade bei der Multiplikation brauch ich ja 2 Seiten oder so..kommt mir halt was suspekt vor.
Zu Aufgabe d habe ich folgende Lösung:
[mm] (a*(a(c+\overline{c}))+(a*b))*\overline{(\overline{b}*\overline{c})}
[/mm]
= (a*(a*1)) + (a*b)) [mm] *\overline{(\overline{b}*\overline{c})}
[/mm]
= (a*(a*1)) + (a*b)) [mm] *\overline{(\overline{b}+\overline{c})}
[/mm]
= ((a*a)+(a*b)) * (b+c)
= (a*a) * (b+c)
Ist das korrekt? Wenn nein, wo sind Fehler?
|
|
|
|
Status: |
(Antwort) fertig | Datum: | 16:28 Mi 08.11.2006 | Autor: | x3n4 |
Hallo,
also mit b und c kann ich dir mal weiter helfen hoffe ich. Du musst jeweils die beiden Dualen zahlen in Dezimalzahlen umrechnen und diese dann entweder addieren oder multiplizieren. Das Ergebnis wandelst du dann wieder in das IEEE Format um.
Gruß x3n4
|
|
|
|
|
Status: |
(Antwort) fertig | Datum: | 01:03 Do 09.11.2006 | Autor: | SLe |
zu d)
Du hast in der 3. Zeile deiner Aufgabe nen Fehler. Ist aber wahrscheinlich nur ein Flüchtigkeitsfehler, denn in der nächsten Zeile ist er schon korrigiert. [mm] (\overline{\overline{b}*\overline{c}} \not= \overline{\overline{b}+\overline{c}})
[/mm]
Im Endergebnis kannst du a*a natürlich noch zu a vereinfachen.
Im folgenden hab ich nen Fehler gemacht. Ich hab nicht berücksichtigt, daß es sich um den IEEE Standard handelt. Zur Korrektur hab ich noch ne Mítteilung geschrieben.
////////////////////Fehler/////////////////////
zu b)und d)
Wenn du zwei binäre Zahlen hast kannst du sie auch binär multiplizieren. Und zwar nach dem Schema:
101*1100 (dezimal: 5*12)
0 (für die rechte Null der zweiten Zahl)
0 (für die zweite Null von rechts von der 2. Zahl)
101 (für die 1 an der dritten Stelle von rechts)
101 (für die verbleibende 1 der zweiten Zahl)
+ --------
111100 (dezimal: 60)
Das heißt, du nimmst die rechte Ziffer der 2. Zahl und multiplizierst sie mit der ersten Zahl. Dabei kommt dann entweder die erste Zahl raus oder eine Null (wie in meinem Beispiel). Dann nimmst du die zweite Ziffer der zweiten Zahl und multiplizierst sie wieder mit der ersten Zahl. Das Ergebnis schreibst du dann unter das erste Ergebnis, nur um eine Stelle nach links gerückt usw. Zum Schluß addierst du die ganzen Zahlen.
//////////////////////Fehler///////////////////
|
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 01:10 Do 09.11.2006 | Autor: | Martin243 |
Hallo,
kann es sein, dass mit IEEE der IEEE-754-Standard gemeint ist?
Dann wäre es mit der einfachen Mutliplikation/Addition im Dezimal- oder Dualsystem nicht getan...
Du müsstest bei der Multiplikation die Mantissen multiplizieren, die Exponenten addieren und das Bias wieder abziehen und das richtige Vorzeichen bestimmen.
Bei der Addition muss die Zahl mit dem kleineren Exponenten denormalisiert werden. Danach werden die Mantissen addiert und das Ergebnis wieder normalisiert.
Gruß
Martin
|
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 01:24 Do 09.11.2006 | Autor: | SLe |
Ja. Hast wahrscheinlich recht. Dann würde die erste Stelle der Zahlen für das Vorzeichen (V) stehen, die nächsten 8 für den Exponenten-127 (E-127) und die letzten 23 für die Mantisse (M).
Also [mm] z=-V*M*2^{E-127}
[/mm]
Um also Z=Y*X zu berechnen:
[mm] Z=(-V_Y)*(-V_X)*M_Y*M_X*2^{E_Y-127+M_X-127}
[/mm]
|
|
|
|
|
Status: |
(Antwort) fertig | Datum: | 02:17 Do 09.11.2006 | Autor: | SLe |
i) 1|10000011|11011010000000000000000
ii)1|01111100|10100000000000000000000
Es wäre also die erste Zahl: [mm] -0,8515625*2^{131-127} [/mm] = [mm] -0,8515625*2^{4}
[/mm]
Die zweite Zahl: [mm] -0,625*2^{124-127} [/mm] = [mm] -0,625*2^{-3}
[/mm]
erste Zahl*zweite Zahl = 0,532226562*2{1} = [mm] 0,532226562*2^{128-127}
[/mm]
binäre Darstellung des Ergebnisses:
0|10000000|10001000001111111111111
|
|
|
|
|
Status: |
(Frage) überfällig | Datum: | 15:30 Sa 11.11.2006 | Autor: | diecky |
Hallo.Erst einmal vielen Dank für eure Mühe!
Ich hätte dennoch eine Frage zur Addition der beiden Zahlen..
wie geht das denn mit dem denormalisieren bzw normalisieren? Hatten das irgendwie nicht in der Vorlesung und kann mir auch nach dem Durchlesen der Folien nicht viel darunter vorstellen.
Habe hier auch eine Formel zur Berechnung der Summe..
x=mx * 2^dx
y=my * 2^dy
=> x+y = (mx*2^(dx-dy) + my)*2^dy, falls dx<=dy
Wenn ich jetzt die Werte für mx= 109/128, my = 5/8 und dx=4 bzw dy=-3 festlege, dann ist dx ja nicht kleiner oder gleich dy.
Dürfte ich jetzt einfach die beiden Werte vertauschen und für mx einfach 5/8 und my=109/128 festlegen usw?!
Wenn nein, wie kann ich es dann lösen?
DANKE!
|
|
|
|
|
Status: |
(Frage) beantwortet | Datum: | 19:30 Di 14.11.2006 | Autor: | diecky |
Aufgabe | (c) Berechnen Sie im Dualsystem die Summe der beiden dargestellten Zahlen. Stellen Sie das Ergebnis wieder im IEEE-Format dar.
i) 11000001111011010000000000000000
ii)10111110010100000000000000000000 |
Mir wurde im vorherigen Thread folgendes erklärt zu dieser Aufgabe:
"Bei der Addition muss die Zahl mit dem kleineren Exponenten denormalisiert werden. Danach werden die Mantissen addiert und das Ergebnis wieder normalisiert."
Wie genau denormalisiert man denn den kleineren Exponenten bzw normalisiert man das Ergebnis?
Das mit der Multiplikation war mir alles klar.
Frage mich außerdem wieso in der Azfgabe steht man solle die Zahlen im Dualsystem addieren bzw multiplizieren..wenn ich das mache wie das da beschrieben wird (also Zahlen einzeln addieren oder multiplizieren) und diese dann ins IEEE-Format umwandele, kommt da was ganz anderes aus als wenn ich es mit dem Schema mache, das ihr mir erklärt habt und auch durchaus nachvollziehbar ist.
Wo liegt mein Denkfehler?
DANKE!
|
|
|
|
|
Status: |
(Antwort) fertig | Datum: | 22:30 Mi 15.11.2006 | Autor: | SLe |
Ich weiß zwar nicht, ob das richtig ist, aber ich könnte mir vorstellen, daß man den Exponenten der niedrigeren Zahl in den Exponenten der höheren Zahl umwandelt und die Mantisse der kleineren Zahl um x Stellen nach rechts verschiebt, wobei x die Differenz der ursprünglichen Exponenten ist.
|
|
|
|