0 Daumen
135 Aufrufe

Nehmen wir als Beispiel die Zahlen 10 und 11

Wenn ich diese nun in eine Dualzahl umforme kommt dies hier raus:

10 = 1010
12 = 1100

1.Frage: Sind diese Zahlen (1010 und 1100) nun nicht negativ? Denn wir sagen ja, dass der MSB (most significant bit) für 0 positiv und für 1 negativ ist?

------------------------------------------------------

2.Frage/Problem

Nun Addieren wir die Beiden Zahlen, also 10+12 =22:

   1010
 +1100
=10110  => Überlauf

Hierbei kommt es doch zu einem Überlauf, denn wir haben ja nur 4 byte?
Und 10110 ist wegen MSB = 1 auch negativ, kurz gesagt wir haben 10110 = -6 ?


Ich hoffe ihr könnt mir hier etwas weiter helfen, dieses Thema mit dem Überlauf oder negativen und positiven Zahlen verwirrt mich ziemlich.


LG Lumpi

von

1 Antwort

0 Daumen

Wenn du annimmst, dass die erste Ziffer dein MSB ist, dann ist 1010 für 10 und 1100 für 12 nicht richtig. Denn dann wäre es ja -2 und -4. Dann würde dein Ergebnis der Addition in Aufgabe 2 mit - 6 passen. Denn (-2) + (-4) ist gleich -6.

Aber wenn der MSB nicht beachtet wird, dann stimmt auch 10+12=22


Zu einem Überlauf kommt es aber. Denn wenn wir annehmen, der Speicher ist 4 bit(!) groß (4 Byte entsprächen 4*8 bit, also 32 bit also 32 0 oder 1), funktioniert die Addition ja nicht. Wir brauchen mindestens 5 Bits, demnach würde aus dem Ergebnis 10110 -> 0110 werden, also nur noch 6. Allerdings fällt hier dann auch der MSB weg, den wir für -6 bräuchten. Demnach ist das Ergebnis +6, und das ist dann falsch. Folglich brauchen wir mindestens 5 bit Speicherplatz.



Bei Verständnisproblemen gerne melden.


Grüße

von

Ein anderes Problem?

Stell deine Frage

Willkommen bei der Stacklounge! Stell deine Frage sofort und kostenfrei

x
Made by a lovely community