binäre Subtraktion

Neue Frage »

buchkogler Auf diesen Beitrag antworten »
binäre Subtraktion
Hallo!

Ich hab ein Verständnisproblem mit der Subtraktion von binären Zahlen.
Konkret habe ich die Aufgabe 299 (100101011) - 501 (111110101) zu rechnen.
Ich hab das ganze mit 2er-Komplement versucht:
100101011 -->299
111110101 --> 501
000001011 --> ~501 +1 (2er-Komplement)

100101011 +
000001011
100110110 (=310)

Ich weiß nicht wo mein Fehler liegt unglücklich

Danke schon im Voraus für die Hilfe!
AD Auf diesen Beitrag antworten »

Da du mit nur 9 Bit rechnest, ist das Ergebnis nicht verwunderlich:

Schließlich ist da dein Ergebnis vom richtigen Ergebnis nicht unterscheidbar. unglücklich

Um Zahlen im Bereich repräsentieren zu können, brauchst du wenigstens 10 Bit in Zweierkomplementdarstellung, d.h. das höchstwertige Bit ist dann das Vorzeichen.
 
 
buchkogler Auf diesen Beitrag antworten »

habs mit 10 bit versucht aber komm nicht auf das richtige Ergebnis unglücklich
AD Auf diesen Beitrag antworten »

Unsinn, du musst doch nur deine obige Rechnung leicht modifizieren, schon kommt das richtige Ergebnis raus. Ich hab eher so das Gefühl, du bist in punkto Zweierkomplement sehr unsicher.
buchkogler Auf diesen Beitrag antworten »

naja hab noch nie damit gerechnet. Bin darüber gestoßen wie ich einen Weg gesucht habe die Mantissen aus einer 32bit Gleitkommazahl zu subtrahieren.

23 bit davon werden für die Mantisse verwendet, die ich subtrahieren will..
AD Auf diesen Beitrag antworten »

Ich modifiziere mal deine obige Rechnung auf die ausreichenden 10 Bit:

0100101011 -->299
0111110101 --> 501
1000001011 --> ~501 +1 (2er-Komplement)

0100101011 +
1000001011
1100110110 --> a

Höchstwertiges Bit ist 1, also ist das Ergebnis negativ. Den Betrag dieser Zahl erhält man wieder durch Zweierkomplementbildung

1100110110 --> a
0011001001 --> ~a
0011001010 --> ~a+1 = 202
buchkogler Auf diesen Beitrag antworten »

aah danke!
tutto capito! smile
Neue Frage »
Antworten »



Verwandte Themen

Die Beliebtesten »
Die Größten »
Die Neuesten »