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

Informatiker Board » Themengebiete » Technische Informatik » 2-bit Binäraddierer » Antwort erstellen » Hallo Gast [Anmelden|Registrieren]

Antwort erstellen
Benutzername: (du bist nicht eingeloggt!)
Thema:
Nachricht:

HTML ist nicht erlaubt
BBCode ist erlaubt
Smilies sind erlaubt
Bilder sind erlaubt

Smilies: 21 von 33
smileWinkDaumen hoch
verwirrtAugenzwinkerngeschockt
Mit ZungeGottunglücklich
Forum Kloppebösegroßes Grinsen
TanzentraurigProst
TeufelSpamWillkommen
LehrerLOL HammerZunge raus
Hilfe 
aktuellen Tag schließen
alle Tags schließen
fettgedruckter Textkursiver Textunterstrichener Text zentrierter Text Hyperlink einfügenE-Mail-Adresse einfügenBild einfügen Zitat einfügenListe erstellen CODE einfügenPHP CODE farbig hervorheben
Spamschutz:
Text aus Bild eingeben
Spamschutz

Die letzten 5 Beiträge
Jannik

Vielen Dank Gott

Jetzt ist mir alles klar.
as_string

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
Jannik

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?
as_string

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
Jannik 2-bit Binäraddierer

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