Registrierung Kalender Mitgliederliste Teammitglieder Suche Häufig gestellte Fragen Zur Startseite

Informatiker Board » Themengebiete » Technische Informatik » 2-bit Binäraddierer » Hallo Gast [Anmelden|Registrieren]
Letzter Beitrag | Erster ungelesener Beitrag Druckvorschau | An Freund senden | Thema zu Favoriten hinzufügen
Neues Thema erstellen Antwort erstellen
Zum Ende der Seite springen 2-bit Binäraddierer
Autor
Beitrag « Vorheriges Thema | Nächstes Thema »
Jannik
unregistriert
2-bit Binäraddierer Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Meine Frage:
Guten Tag,

ich habe ein kleines Problem bei einer Aufgabe.

Die Addition zweier n-stelliger Binärzahlen xn-1 xn-2...x1 x0 und yn-1 yn-2...y1 y0 ergibt die Summe zn-1z n-2...z1 z0, sowie ein Carry-Bit ca und ein Overflow-Bit ov.

a) Geben Sie für den Fall n = 2 eine Wertetabelle der Abbildung B^4 -> B^4 : (x1, x0, y1, y0) 7 -> (ov, ca, z1, z0) an!

b) jeweils die Urbilder von 1 angeben. Das ist halt klar, wenn man die a) hat.




Meine Ideen:
Mein Problem ist hier jetzt bei der Aufgabe a). Ich muss eine Wertetabelle erstellen, das ist mir klar. (x1, x0, y1, y2 = 0000 bis 1111 auflisten). Jetzt ist mir nicht klar, wie ich auf den overflow, carry, z1 und z0 komme. Ich habe zwar die Lösung (hoffe Fehlerfrei) bringt mir aber irgendwie nichts. Falls es hilft, mir zu helfen:

x1x0y1y0| z1 z0 ca ov
0 0 0 0 | 0 0 0 0
0 0 0 1 | 0 1 0 0
0 0 1 0 | 1 0 0 0
0 0 1 1 | 1 1 0 0
0 1 0 0 | 0 1 0 0
0 1 0 1 | 1 0 0 1
0 1 1 0 | 1 1 0 0
0 1 1 1 | 0 0 1 0
1 0 0 0 | 1 0 0 0
1 0 0 1 | 1 1 0 0
1 0 1 0 | 0 0 1 1
1 0 1 1 | 0 1 1 1
1 1 0 0 | 1 1 0 0
1 1 0 1 | 0 0 1 0
1 1 1 0 | 0 1 1 1
1 1 1 1 | 1 0 1 0



Viele Güße
21.02.2019 17:13
as_string as_string ist männlich
Haudegen


Dabei seit: 06.11.2013
Beiträge: 554
Herkunft: Heidelberg

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

z0 und z1 sind halt das 2-stellige Ergebnis der Addition.
ov ist overflow und ca ist carry. Schlag mal die Begriffe nach (oder Google).

Gruß
Marco
22.02.2019 18:07 as_string ist offline E-Mail an as_string senden Beiträge von as_string suchen Nehmen Sie as_string in Ihre Freundesliste auf
Jannik
unregistriert
Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Vielen Dank für deine Antwort.

Mir ist das mit z1 und z0 jetzt klar geworden, aber mit Carry und Overflow bin ich mir jetzt nicht ganz so sicher. Zum Beispiel ich habe 11+01 (Binär) das würde (1)00 machen. Wieso ist das kein Overflow laut der Tabelle?
22.02.2019 18:42
as_string as_string ist männlich
Haudegen


Dabei seit: 06.11.2013
Beiträge: 554
Herkunft: Heidelberg

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Es kommt darauf an, ob die Zahlen signed oder unsigned sein sollen.
Wenn sie unsigned sein sollen, spielt das overflow flag keine Rolle. Aber bei signed (und Darstellung im 2-er Komplement) schon.
Wenn Du nur 2 Bit hast, wie in dieser Aufgabe, wäre die Entsprechung der Darstellung zu Dezimalzahlen ja so:

10 -> -2
11 -> -1
00 -> 0
01 -> 1

Wenn Du zu 11 (also -1) eine 01 (also eine +1) addierst, kommt 00 (-> 0 im Dezimalsystem) raus. Das ist ein korrektes Ergebnis. -> kein Overflow.
Wenn Du zu 01 (also +1) eine 01 (also wieder +1) addierst, würdest Du ein 10 bekommen, das ist aber die Repräsentation einer -2, das korrekte Ergebnis wäre aber +2, was aber mit dem 2-Bit-Zweierkomplement gar nicht darstellbar ist.
Das nächste Beispiel ist 10 + 10 (also -2 + (-2) -> wäre -4). Ergebnis ist 00, also "falsch" wenn als Dezimalzahl interpretiert.
Also letztlich stimmt das Ergebnis immer dann, wenn etwas zwischen -2 und +1 raus kommt. Alles andere muss falsch sein, weil es mit dem 2-er Komplement gar nicht darstellbar ist.
Also wenn ich eine -2 mit einer -2 addiere, oder eine -2 mit einer -1 (oder umgekehrt) oder eine +1 mit einer +1 rutsche ich aus dem darstellbaren Bereich raus und das Overflow-Flag wird gesetzt.

Beim Carry ist es ja eigentlich so ähnlich. Da sind mit den zwei Bit die Zahlen von 0 bis 3 kodiert. Jedes Ergebnis, das 3 und kleiner ergibt, ist darstellbar, bei 4, 5 und 6 als Ergebnis gibt es einen Übertrag (also immer wenn ich eine 3 mit einer 1 (oder umgekehrt), eine 2 mit einer 2 addiere, würde 4 raus kommen, wenn ich ein 3 mit einer 2 (oder umgekehrt) addiere eine 5 und bei einer 3 mit einer 3 eine 6)

Gruß
Marco
22.02.2019 20:43 as_string ist offline E-Mail an as_string senden Beiträge von as_string suchen Nehmen Sie as_string in Ihre Freundesliste auf
Jannik
unregistriert
Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

Vielen Dank Gott

Jetzt ist mir alles klar.
22.02.2019 20:57
Baumstruktur | Brettstruktur
Gehe zu:
Neues Thema erstellen Antwort erstellen
Informatiker Board » Themengebiete » Technische Informatik » 2-bit Binäraddierer