Zweierkomplement

Edinita

Mitglied
Hi!

Bin mir nicht ganz sicher, ob das Thema hier überhaupt in ein Java-Forum passt.. aber ich versuch mein Glück trotzdem mal! :)

Und zwar habe ich eine Aufgabe vor mir:
(-11011011) soll in eine Dezimalzahl umgewandelt werden.
Die Lösung soll anscheinend -219 sein... (es ist eine Lösungsdatei vorhanden)

Aber normalerweise funktioniert die Umwandlung doch folgendermaßen:
1. -1 -> 11011010
2. "Zahlen umdrehen" 00100101
3. Umrechnen ins Dezimalsystem - das wären aber dann -37

Habe ich irgendwo einen Denkfehler? Oder hat sich in die vorgegebene Lösung eventuell ein Fehler eingeschlichen?

Vielen Dank schon mal :)
 

Henne079

Aktives Mitglied
Ich verstehe deine Umwandlung nicht ganz. Wäre schön die gesamte Aufgabe zu kennen.

Die Binärzahl 11011011 ergibt als Dezimalzahl 219. Mit dem Minus davor, ergibt es dann -219.
 
K

kneitzel

Gast
Also Dein der Denkfehler ist, dass Du eine Binärzahl ohne Vorzeichen hast, vor die einfach ein - als Vorzeichen gesetzt wurde. Das ist als Aufgabe absoluter Quatsch!

Wenn Du nur die "11011011" als vorzeichenbehaftete Binärzahl ansehen würdest, dann wäre das Ergebnis -37, denn dann wäre das erste Bit sozusagen das Vorzeichen (1 = negative Zahl) und dann würde das 1011011 so wie von Dir umgerechnet: Erst -1 und dann "umdrehen": 0100101 (dezimal 37) und mit dem Vorzeichen dann -37.
 

Edinita

Mitglied
Das ist quasi wie eine Fangfrage oder? Ich hab es mir auch schon gedacht - aber es handelt sich um eine Altklausur bzw. Probeklausur zum Üben mit einem Lösungszettel.. und ich konnte mir einfach nicht vorstellen, dass tatsächlich in Klausuren "Fangfragen" drankommen.. Danke auf jeden Fall!
 

Edinita

Mitglied
Und um nochmal meine Umwandlung zu erklären:

Wir haben es halt immer wie folgt gemacht, wenn wir eine negative Dezimalzahl ins Binärsystem umrechnen sollten:

1. Zahlen "umdrehen" also bei 3 -> 0011 -> 1100
2. +1: 1100 -> 1101

Und um dann ein Zweierkomplement wieder ins Dezimalsystem umzurechnen, muss man es also umgekehrt machen: 1. -1 und 2. Zahlen "umdrehen"
 
K

kneitzel

Gast
Nunja - Fangfrage weiss ich nicht. Aber eine schlecht durchdachte Aufgabe (in meinen Augen). Da hätte man das "-" einfach weglassen sollen um die Umrechnung einer Dualzahl ins Dezimalsystem abzufragen oder es als signed byte ohne das Minuszeichen angeben sollen, wenn man prüfen wollte, ob eben diese Darstellung mit Zweierkomplement verstanden wurde.

Aber sowas kann durchaus mal passieren - so Tests werden ja auch nur von Menschen gemacht.

Und deine Umrechnung ist ja auch korrekt. Nur eben gibt es bei den vorzeichenbehafteten Zahlen kein "-" sondern das erste Bit dient sozusagen als Vorzeichen und muss als solches behandelt werden.
 

Neue Themen


Oben