Zweierkomplement

Dnh

Mitglied
Hallo,

ich möchte folgende Rechnung binär durchführen:
-99-116 (Dezimal)

Am einfachsten wäre es ja beide Zaheln als positiv zu betrachtet, da das Vorzeichen ja nachher klar ist.
Ich habe es allerdings trotzdem versucht, beide zahlen erst binär auszudrücken, dann jeweils das Zweierkomplement gebildet und diese dann addiert. Heraus kam was falsches. Warum?
 

httpdigest

Top Contributor
Wie du ja schon sagst, kannst du einfach die positiven Zahlen addieren.
Wenn du das machst, bilde also 99 und 116 binär, addiere beide Zahlen binär und erzeuge das Zweierkomplement von dem negierten Ergebnis, indem du alle Bits vom positiven Ergebnis invertierst und am Schluss noch 1 addierst.
Wenn du gleich die Zweierkomplemente von -99 und -116 addieren willst, kannst du das so machen, indem du also zuerst 99 und 116 binär bildest, dann die Zweierkomplementumwandlung von 99 zu -99 und 116 zu -116 machst, indem du alle Bits umkehrst und am Ende 1 addierst. Dann kannst du beide Zahlen addieren und solltest dasselbe Ergebnis erhalten wie als würdest du zuerst 99 und 116 addieren und das negierte Ergebnis dann als Zweierkomplement darstellen.
 

mihe7

Top Contributor
Code:
-99 = 2k(01100011) = 10011100 + 1 = 10011101
-116 = 2k(01110100) = 10001011 + 1 = 10001100

    10011101
+   10001100
=(1)00101001

Die führende 1 ist Übertrag und fällt weg, d. h.

00101001 = -215
neg(00101001 - 1) = neg(00101000) = 11010111 = 215
 

Dnh

Mitglied
Danke für die ausführliche Rechnung.
Der letzte Schritt hat mir das Genick gebrochen.
Ich bin davon ausgegangen, dass man mit dem gleichen Vorgehen auch von einer negativen Zahl auf eine positive kommen kann. Sprich: Negation bilden und dann +1 rechnen. Ich wusste nicht, dass man hier genau andersherum verfahren muss.
 

Neue Themen


Oben