2er-Komplement < Elektrotechnik < Ingenieurwiss. < Vorhilfe
|
Aufgabe | Beantworten Sie folgende Fragen im Bezug auf die 2er-Komplement-Darstellung ganzer Zahlen:
a. Geben Sie die größte und die kleinste darstellbare Zahl, sowie die Null bei Verwendung von 8 Bits an.
b. Folgende Dualzahlen in 2er-Komplement-Darstellung sind gegeben: 10011100 und 10010010.
(i) Addieren Sie die beiden Zahlen.
(ii) Hat bei der Addition ein Überlauf (Overflow) stattgefunden? Begründen Sie kurz Ihre Antwort.
c. Folgende Dualzahlen in 2er-Komplement-Darstellung sind gegeben: 10011100 und 01110110.
Wird bei der Addition dieser Zahlen ein Überlauf stattfinden? Bitte begründen Sie Ihre Antwort ohne das Ergebnis konkret zu berechnen.
|
Hallo,
mit dem neuen Thema ("Arithmetik in Computern") habe ich leider noch so meine Schwierigkeiten...
Die obige Aufgabe würde ich so angehen (meine Fragen/Probleme habe ich grün markiert):
a.
[mm] $+127_{(10)} [/mm] = [mm] 01111111_{(2)}$
[/mm]
[mm] $0_{(10)} [/mm] = [mm] 00000000_{(2)}$
[/mm]
[mm] $-128_{(10)} [/mm] = [mm] 10000000_{(2)}$
[/mm]
b.
(i)
[mm] $\begin{matrix}
& 10011100 \\
+ & 10010010
\end{matrix}$
[/mm]
???
Ist es richtig, dass es sich bei beiden Dualzahlen um negative Zahlen handelt, da sie jeweils mit einer 1 enden?
Leider habe ich überhaupt nicht verstanden, wie man zwei Dualzahlen addiert... Aus der Vorlesung stammt dieses Beispiel:
[mm] $\begin{matrix}
& 11101110 \\
+ & 11011000 \\
& 111101010
\end{matrix}$
[/mm]
-> Übertrag weglassen und Rücktransformation:
Kippen: 00111001
1 addieren: 00111010 -> -58
(ii) Hierfür muss ich natürlich erst die (i) berechnen können, aber ich habe das so verstanden, dass wenn beide Überträge gleich sind, eine korrekte Addition und somit kein Überlauf stattgefunden hat(?).
c. Die Summanden haben unterschiedliche Vorzeichen und das Ergebnis ist auf jeden Fall korrekt, somit kein Überlauf. Das Vorzeichen hängt davon ab, ob Subtrahend oder Minuend betragsmäßig größer ist. Ich bin mir nicht sicher, ob ich hiermit der Aufgabenstellung gerecht werde, oder Überlauf mit Übertrag verwechselt habe...
Vielen Dank.
Gruß
el_grecco
|
|
|
|
Status: |
(Antwort) fertig | Datum: | 01:37 Di 08.06.2010 | Autor: | qsxqsx |
Hi,
a.) Ist richtig.
b.) "Ist es richtig, dass es sich bei beiden Dualzahlen um negative Zahlen handelt, da sie jeweils mit einer 1 enden?"
Was meinst du mit "enden"? Wenn die linke äussere Zahl eine 1 ist, dann ist die Zahl negativ (sofern die Darstellung im 2-erKomplement ist...).
Dualzahlen addiert man ganz einfach analog wie Zahlen im Zehnersystem - der unterschied ist, dass der Übertrag bei der Grenze 2 und nicht bei der Grenze 10 stadtfindet...
Das gilt natürlich auch für Dualzahlen im 2-erKomplement. Der mögliche, linke Übertrag wird einfach ignoriert.
Um festzustellen, ob ein Überlauf stadttgefunden hat, kannst du ja mal beide Zahlen ins Zehnersystem Umrechnen und addieren. Wenn es was unter -128 gibt, dann hat wohl ein Überlauf stadtgefunden.
Man kann es auch leichter sehen:
Beide Zahlen sind negativ. Addiert man sie nun, so muss die neue Zahl auch negativ sein, nicht...?
c.) Hier muss man überlegen, was es heisst eine negative und positive Zahl im 2erKomplement zu addieren. Was kann da alles passieren?
Aja und die goldene Hauptregel zur Umrechnung: "Kippen und 1 addieren"
Die sollte man wissen...
Gruss
|
|
|
|
|
> Was meinst du mit "enden"? Wenn die linke äussere Zahl
> eine 1 ist, dann ist die Zahl negativ (sofern die
> Darstellung im 2-erKomplement ist...).
>
Binärzahlen werden doch von rechts nach links gelesen (wenn ich es noch richtig in Erinnerung habe)?
> Dualzahlen addiert man ganz einfach analog wie Zahlen im
> Zehnersystem - der unterschied ist, dass der Übertrag bei
> der Grenze 2 und nicht bei der Grenze 10 stadtfindet...
> Das gilt natürlich auch für Dualzahlen im
> 2-erKomplement. Der mögliche, linke Übertrag wird einfach
> ignoriert.
>
Vielen Dank für diesen wichtigen Hinweis. Das mit der Grenze bei 2 stand nämlich nicht im Skript.
Das bedeutet dann für b. (i):
[mm] $\begin{matrix}
& 10011100 \\
+ & 10010010 \\
= & 100101110
\end{matrix}$
[/mm]
Eine Rücktransformation wäre hier doch überflüssig, denn es wird ja keine Dezimalzahl verlangt...?
> Um festzustellen, ob ein Überlauf stadttgefunden hat,
> kannst du ja mal beide Zahlen ins Zehnersystem Umrechnen
> und addieren. Wenn es was unter -128 gibt, dann hat wohl
> ein Überlauf stadtgefunden.
Stimmt die Umrechnung so?
10011100 -> 10011101 -> 01100010 -> 98 -> -98
10010010 -> 10010011 -> 01101100 -> 108 -> -108
-98 - 108 = -206, somit ein Überlauf
> Man kann es auch leichter sehen:
> Beide Zahlen sind negativ. Addiert man sie nun, so muss
> die neue Zahl auch negativ sein, nicht...?
>
Dass die neue Zahl negativ sein muss, leuchtet ein, aber reicht das schon als Begründung, schließlich wäre ein Ergebnis wie z.B. -300 auch negativ, aber kleiner als -128...?
> c.) Hier muss man überlegen, was es heisst eine negative
> und positive Zahl im 2erKomplement zu addieren. Was kann da
> alles passieren?
>
Wahrscheinlich kapiere ich die c., wenn ich die b. verstanden habe. Im Moment sehe ich die Lösung leider nicht.
Im Internet habe ich eine Übungsfolie gefunden:
Überlauf
Kann es sein, dass die hier Überlauf und Übertrag (z.B. auf Folie 13) verwechseln?
Gruß
el_grecco
|
|
|
|
|
Status: |
(Antwort) fertig | Datum: | 09:45 Di 08.06.2010 | Autor: | qsxqsx |
> > Was meinst du mit "enden"? Wenn die linke äussere Zahl
> > eine 1 ist, dann ist die Zahl negativ (sofern die
> > Darstellung im 2-erKomplement ist...).
> >
>
> Binärzahlen werden doch von rechts nach links gelesen
> (wenn ich es noch richtig in Erinnerung habe)?
Ja von rechts nach links, wie alle Zahlen. Aber Ende= rechts für mich im Allgemeinen; ).
>
> > Dualzahlen addiert man ganz einfach analog wie Zahlen im
> > Zehnersystem - der unterschied ist, dass der Übertrag bei
> > der Grenze 2 und nicht bei der Grenze 10 stadtfindet...
> > Das gilt natürlich auch für Dualzahlen im
> > 2-erKomplement. Der mögliche, linke Übertrag wird einfach
> > ignoriert.
> >
>
> Vielen Dank für diesen wichtigen Hinweis. Das mit der
> Grenze bei 2 stand nämlich nicht im Skript.
>
> Das bedeutet dann für b. (i):
>
> [mm]$\begin{matrix}
& 10011100 \\
+ & 10010010 \\
= & 100101110
\end{matrix}$[/mm]
>
> Eine Rücktransformation wäre hier doch überflüssig,
> denn es wird ja keine Dezimalzahl verlangt...?
Die Zahl ist richtig addiert. Ja, aber kannste ja mal machen.
Ich erhalte (1)00101110 ---> 00101110 = 46. Aber eben, es bringt es ja eigentlich nicht, da die Zahl im Sinne ihres Ergebnises ja eh falsch ist, wegen dem Überlauf.
>
>
> > Um festzustellen, ob ein Überlauf stadttgefunden hat,
> > kannst du ja mal beide Zahlen ins Zehnersystem Umrechnen
> > und addieren. Wenn es was unter -128 gibt, dann hat wohl
> > ein Überlauf stadtgefunden.
>
> Stimmt die Umrechnung so?
> 10011100 -> 10011101 -> 01100010 -> 98 -> -98
>
> 10010010 -> 10010011 -> 01101100 -> 108 -> -108
>
> -98 - 108 = -206, somit ein Überlauf
>
Nein stimmt nicht. Zuerst KIPPEN, dann + 1.
>
> > Man kann es auch leichter sehen:
> > Beide Zahlen sind negativ. Addiert man sie nun, so muss
> > die neue Zahl auch negativ sein, nicht...?
> >
>
> Dass die neue Zahl negativ sein muss, leuchtet ein, aber
> reicht das schon als Begründung, schließlich wäre ein
> Ergebnis wie z.B. -300 auch negativ, aber kleiner als
> -128...?
Es kann ein solches Ergebnis wie -300 beim Überlaufen aber nicht geben, wenn du zwei negative 2erKomplemente addierst (vorausgesetzt wir rechnen hier mit 8-Bits...). Bei der Addition von zwei negativen Zahlen: entweder die Ergebniszahl wird positiv ---> Überlauf, oder sie ist korrekt! Darüber muss man ein bisschen nachdenken...am besten mal mit kleinen Zahlen ausprobieren.
Am besten überlegst du dir mal die Extremfälle, die es so gibt. Also die negativste darstellbare Zahl mit sich selbst addieren, die grösste, positive darstellbare Zahl mit der negativsten addieren, die Grösste mit sich selbst addieren.....
>
>
> > c.) Hier muss man überlegen, was es heisst eine negative
> > und positive Zahl im 2erKomplement zu addieren. Was kann da
> > alles passieren?
> >
>
> Wahrscheinlich kapiere ich die c., wenn ich die b.
> verstanden habe. Im Moment sehe ich die Lösung leider
> nicht.
>
> Im Internet habe ich eine Übungsfolie gefunden:
>
> Überlauf
>
> Kann es sein, dass die hier Überlauf und Übertrag (z.B.
> auf Folie 13) verwechseln?
Ich seh den fehler nicht. Anhand des Übertrags kann man den Überlauf erkennen.
Aber die Folie ist gut, es werden ja schön die drei Fälle dargestellt:
1.) Beide negativ.
2.) Beide positiv.
3.) Einer negativ, der andere positiv...
>
>
> Gruß
> el_grecco
>
Gruss
|
|
|
|
|
Status: |
(Mitteilung) Reaktion unnötig | Datum: | 20:07 Di 08.06.2010 | Autor: | el_grecco |
Vielen Dank, jetzt ist mir alles klar!
Gruß
el_grecco
|
|
|
|