Zweierkomplement |
Julien87 unregistriert
|
|
Vorab, ich weiss was das Zweierkomplement ist. Das Zweierkomplement einer Dualzahl ist die Invertierung der AusgangsDualzahl addiert mit 1. So werden negative Dezimalzahlen in Dualzahlen codiert.
Nun versteh ich bei einer Aufgabe jedoch folgendes nicht:
"Mit einem Schaltnetz sollen zwei zweistellige Dualzahlen A und B im Zweier-Komplement voneinander subtrahiert werden (D=A-B). Eingangsvariablen sind die vier Dualziffern a1,a0 und b1,b0.Dabei repräsentieren die Ziffern a1,b1 die Vorzeichenstellen im Zweierkomplement.
Also
Eingänge:
a1 a0 b1 b0
0 0 0 0
0 0 0 1
0 0 1 0 (Z3)
......
Meine Frage:
Woher weiss ich nun das z.B. für den dritten Zustand Z3 B=-2 ist? Also ich verstehe nicht wie ich 1 0 als -2 interpretiere. Wäre -2 den nicht das Zweierkomplement von 1 0 ?
|
|
21.07.2013 16:41 |
|
|
|
Die Binärzahl ist 10. Die 1 am Anfang verrät dir, dass es sich um eine negative Zahl handelt.
Komplement bilden: 01
1 addieren: 10 (jetzt aber betragsmäßig, das ist keine negative Zahl mehr)
, mit dem Minuszeichen also -2.
__________________ Syntax Highlighting fürs Board (Link)
|
|
22.07.2013 08:58 |
|
|
Julien87 unregistriert
|
|
Das habe ich leider noch nicht so recht verstanden. Wieso verät mir die 1 am Anfang das es eine negative Zahl ist? 0010 bzw. 10 wäre doch 2
|
|
22.07.2013 16:18 |
|
|
|
A und B sind beides Ziffern, die aus 2 Bit bestehen. Und wenn das vorderste Bit gesetzt ist, dann ist die Zahl - wenn als Zweierkomplement gespeichert - negativ.
__________________ Syntax Highlighting fürs Board (Link)
|
|
22.07.2013 17:24 |
|
|
Julien87 unregistriert
|
|
Danke, vielleicht habe ich es den jetzt etwas besser verstanden. Sagen wir mal folgendes ist im Zweierkomplement gespeichert:
1 (Negativ)
01 (Positiv)
001 (Negativ)
10 (Positiv)
Wenn das stimmen sollt3, wie bekomme ich nun die Werte als Dezimaldarstellung? 01,001 sollte klar sein wenn obiges stimmt, da ja das Vorzeichen eine 0 ist, muss man den Binärcode einfach in eine Dezimalzahl umwandeln.
Aber was ist mit 1 und 10? Hier muss ich einfach das zweierkomplement bilden und dann schauen welche ,,Ausgangsdezimal" Zahl es ist? Und - vor der Ausgangsdezimalzahl setzen und schon weiss ich wie 1 und 10 als Dezimalzahl dargestelt werden oder? Das waren jetzt leichte Beispiele, ging mir nur ums Verständnis, damit ich das bei großen Zahlen anwenden kann.
|
|
23.07.2013 16:47 |
|
|
|
10 hat eine 1 an erster Stelle, ist also negativ. 001 ist positiv.
Du schreibst das erst anders, um danach doch richtig zu argumentieren.
Du kannst auf dieser Seite herumspielen (einfach etwas in die oberste Zeile schreiben und das angewählte Feld dann verlassen).
__________________ Syntax Highlighting fürs Board (Link)
|
|
23.07.2013 17:19 |
|
|
Julien87 unregistriert
|
|
Ich weiss nicht was ich da oben gemacht habe, aber da ist ne Menge falsch.^^ Das fällt mir erst gerade auf! Hier nochmal andere Beispieel:
01 positiv
001010001 positiv
11011010 negativ
1 negativ
...
Ich habe es jetzt verstanden, wenn das richtig sein sollte. Die Dezimazahl von den negativen Binärcodes bekomm ich einfach hin, indem ich ihr zweierkomplement bilde und diese dann in eine Dezimalzahl umwandel. Wobei ich diese Dezimalzahl dann ein Minuszeichen vorne dransetze!
|
|
23.07.2013 17:26 |
|
|
Julien87 unregistriert
|
|
|
24.07.2013 03:09 |
|
|
|