Dualzahlen im einer und zweier komplement konvertieren wie?

2 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

Negative Zahlen im Einerkomplement:

Betrag der Zahl als Binärzahl darstellen, dann Bits invertieren um die Zahl zu negieren.

Zahlenraum: [-2^(n-1) - 1, 2^(n-1) - 1]; Null hat zwei Binärdarstellungen

Beispiele:

Dezimal Dezimal(Betrag) Binär(Betrag) Binär
     -0               0            00    11
     -1               1            01    10
     -2               2           010   101

Negative Zahlen im Zweierkomplement:

Betrag der Zahl als Binärzahl darstellen, dann Bits invertieren und 1 addieren um die Zahl zu negieren.

Zahlenraum: [-2^(n-1), 2^(n-1) - 1];

Beispiele:

Dezimal Dezimal(Betrag) Binär(Betrag) Binär
     -0               0            00    00
     -1               1            01    11
     -2               2           010   110

Achte bei der umwandlung darauf, dass du genügend Bits vwerwendest um die Zahl darstellen zu können.

Einerkomplement ist einfach alle 1 durch 0 ersetzen und alle 0 gegen 1 tauschen.

Zweierkomplement ist Einerkomplent plus eins (überträge berechnen!)

Der Vorteil vom Zweierkomplement ist die bzgl. der Addition abgeschlossenen Rechnung. Beispiel, wenn du im Dezimalsystem zu -4 vier addierst, dann kommt null raus. Wenn du das im Binärsystem machst, funktioniert das nur, wenn du die negative Zahl im Zweierkomplement notierst und den höchsten Übertrag skippst.

1100 + 0100 = 1 0000 -> 0000