Binärzahlen subtrahieren: Übertrag?

Neue Frage »

~Jana~ Auf diesen Beitrag antworten »
Binärzahlen subtrahieren: Übertrag?
Hallo,

ich hab ein kleines Problem mit dem Subtrahieren von Binärzahlen, vielleicht kann man mir hier ja helfen.

An sich ist mir das Verfahren mit dem Subtrahieren als Addition mit dem Zweierkomplement klar... aber ich hab verstehe nicht wirklich, wann ich die erste Stelle weglasse und wann nicht.

Dazu zwei Beispiele.

Erstens:

12 - 8 = 4
12= 01100
-8= 11000

01100 +11000 =(1)00100
Wenn ich hier die erste Stelle weglasse passt es und es kommt 4 raus.

Zweitens:

7 -19 = -12
07=000111
-19= 101101

000111+101101 = 110100
Wenn ich hier die erste Stelle weglassen würde, würde ich -4 rausbekkommen, lass ich sie drin sind es -12 und alles ist gut.

Wonach unterscheide ich das? Gibt es da Regeln?
Klar kann ich mir das Ergebnis extra ausrechnen, vergleichen und dann wissen ob ich sie weglassen muss oder nicht, aber das ist ja auch nicht Sinn der Sache Augenzwinkern

Wär froh wenn mir jmd helfen könnte?

Grüße
Jana
outSchool Auf diesen Beitrag antworten »
Zweierkomplement
Hallo

zuerst mal zur Kodierung:

Negative Zahlen im Zweierkomplement werden anders kodiert als in deinen Beispielen.

Lege die Anzahl der Bits fest, mit denen du die negativen Zahlen kodieren willst.
Ich nehme mal 1 Byte (8 Bit), die Codierung im Zweierkomplement umfasst dann den Bereich von -128 bis +127 dezimal. Bei den negativen Zahlen hat das höchstwertige Bit den Wert 1.

-128 dezimal hat im Zweierkomplement den Wert 1000 0000
Nehmen wir mal die Dezimalzahl +30, die binäre Darstellung (7 Bit) ist:

x001 1110 + 30

Dann wird die Binärzahl invertiert zu:

x110 0001 = 64+32+1 =97

Jetzt wird 1 und -128 addiert:

0110 0001 + 97
0000 0001 + 1
-------------------------
0110 0010 + 98
1000 0000 - 128
--------------------------
1110 0010 - 30

Zur Probe wird binär 0001 1110 = + 30 dezimal addiert:

(0) 1110 0010 - 30
(0) 0001 1110 + 30
------------------------
(1) 0000 0000

Das 9. Bit wird verworfen.

Zu deinen Beispielen:

1) 0000 1000 = +8
2) Invertierten 1111 0111
3) 1 addieren 0000 0001
Ergebnis 1111 1000 = -8

12 - 8 = 4

0000 1100 +12
1111 1000 - 8
------------------------
0000 0100 + 4


7 - 19 = - 12

0000 0111 + 7
1110 1101 - 19
-------------------------
1111 0100 - 12
0000 1100 +12 (Probe)
-------------------------
0000 0000
~Jana~ Auf diesen Beitrag antworten »

Huhu,

danke für deine Antwort :-)

Hm... dann haben wir das schon die ganze Zeit falsch gelernt, wir haben nämlich auch einfach 5 stellige Binärzahlen addiert oder so.
Naja, vielleicht wusste unsere Lehrerin ja im Kopf wie es geht... toll. geschockt

Also das heißt: Ich gehe immer auf "4er Bits"?
Also: 4 oder 8?

Und das nächste(=vorderste was zuviel ist) Bit schmeiß ich dann weg? Also das 5. bzw 9.?

Was mache ich, wenn das Ergebnis meinen "Bitrahmen" sprengt, also bspw. 7+5 was ja noch in 4 Bits passt... das Ergebnis aber nicht mehr? Dann geh ich gleich von 8 Bits aus? Dann schummel ich ja weil ich das Ergebnis schon kenne?

Aber so komm ich auf jeden Fall schonmal weiter, danke nochmal.

Grüße
Jana
outSchool Auf diesen Beitrag antworten »

Zitat:
Original von ~Jana~
Also das heißt: Ich gehe immer auf "4er Bits"?
Also: 4 oder 8?

Nein, die 8 Bit, das war nur als Beispiel. Du kannst auch 16 Bit, 32 Bit oder 5 Bit nehmen. Die Anzahl der Bits legt den Wertebereich fest.

Hier noch ein Beispiel mit 5 Bit für den Wertebereich plus 1 Bit für das Vorzeichen = 6 Bit.

Der Wertebereich geht nun von



Jetzt noch ein Beispiel: 17 - 27 = -10

011011 = +27, dann invertieren
100100 jetzt noch 1 addieren
000001
-----------
100101 = -27

010001 +17
100101 - 27
-------------------
110110 -10
001010 +10 (Probe)
--------------------
000000

In Rechnern wird immer in 8 Bit, 16 Bit, 32 Bit, 64 Bit adressiert, das sind Standards. Für das Rechnen mit dem Zweierkomplement spielt das keine Rolle.
~Jana~ Auf diesen Beitrag antworten »

Huhu,

ok, das heißt ich kann beliebig viele Bit-Stellen nehmen, solange ich weiß, dass mein Ergebnis / alle meine Zahlen im Wertebereich liegen?

Woher ich das eigentlich weiß versteh ich zwar immer noch nicht, aber in der Arbeit rechnen kann ich damit Augenzwinkern

Danke!

Jana
Neue Frage »
Antworten »



Verwandte Themen

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