Moin!
Die Aufgabe ist die, dass ich zum Beispiel das ausrechnen sollte:
-240 - 230 = ? Binär(Da müsste man ja -240 + (-230) rechnen da es ja die subtraktion nicht gibt.)
Vielleicht solltest du, nur um warm zu werden, erstmal mit einer kleineren Zahl anfangen:
-2 minus 3 (da soll -5 rauskommen).
Man kann simpel von Null runterzählen (machen wir mal nur in 4 Bit - geht ja auch):
0000 = 0
1111 = -1
1110 = -2
Und die 3 ist simpel:
0011 = 3
Subtraktion zweier binärer Zahlen funktioniert, indem man das Zweierkomplement der zweiten Zahl bildet, addiert, und noch 1 addiert.
Zweierkomplement: Alle Bits invertieren:
1100 = !3
Addieren:
1110
- 1100
+ 1
------
11011
Das überschüssige Bit muß sein, das zeigt "keinen Überlauf" bei der Rechnung an.
Und das Ergebnis ist:
1011 = -5 (soll so sein. Mal abzählen...)
1100 = -4
1101 = -3
1110 = -2
1111 = -1
0000 = 0
Stimmt.
Wenn du jetzt "-240 - 230" rechnen sollst, brauchst du ganz dringend viele Bits vorne vor (8 Stück reichen da nicht wirklich, sonst gibts einen Register-Überlauf), um korrekte Ergebnisse zu erhalten. Oder du hast eben tatsächlich den Überlauf, und kriegst ein abgeschnittenes Ergebnis raus. Der 6502/6510-Mikroprozessor konnte ja, obwohl er nur ein 8 Bit Rechner war, trotzdem längere Zahlen berechnen. Ist eben alles eine Frage von Carry- und Overflow-Flag.
- Sven Rautenberg
Die SelfHTML-Developer sagen Dankeschön für aktuell 21335,05 Euro Spendengelder!