Sven Rautenberg: Dezimal - > Binär

Beitrag lesen

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!