Kiggie Geschrieben 25. Februar 2019 Teilen Geschrieben 25. Februar 2019 Hallo liebe Foren-Mitglieder, ich habe eine Frage zum Zweierkomplement und Komplementaddition. Ich habe die folgenden Aufgaben: Gelöst werden sollen Sie durch Rechnung mit 8-Bit-Dualzahlen im Zweierkomplement: a) +32-15 b) -32-15 Bei a) habe ich keine Probleme. +32+(-15) = +17 Ich stelle den Subtrahenden im Zweierkomplement dar. (11110001) Das addiere ich dann zur 32 (00100000) Ergebnis: 100010001 Der Übertrag von 1 (9. Stelle) sagt mir, dass es sich um eine positive Zahl handelt und wird gestrichen, daher: 00010001, dies entspricht der 17, stimmt also. b) führt dann zum Problem. Ich habe die -32 auch als Zweierkomplement dargestellt (11100000), dazu die -15 von oben 11100000 11110001+ Führt zu: 111010001 Hier ist wieder ein Überlauf, was, nach dem was ich gelernt habe, auf eine positive Zahl hindeutet. Aber das ist hier ja falsch, ich erwarte die -47. Wandel ich die Zahl ohne Überlauf (11010001) in das Zweierkomplement um erhalte ich die 47, aber das Vorzeichen zuvor ist ja nicht korrekt gedeutet. Wo liegt mein Rechen- oder Denkfehler? Gibt es generell etwas zu beachten, wenn ich zwei negative Zahlen addiere? Vielen Dank für die Hilfe Kiggie Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Kiggie Geschrieben 25. Februar 2019 Autor Teilen Geschrieben 25. Februar 2019 Nach Rumprobieren habe ich gerade noch die Idee: -32-15 = -(+32+15) Daher wäre zunächst die Addition der beiden Zahlen (32+15) in ihrer normalen Form (=47 / 00101111)möglich und anschließend das Zweierkomplement vom Ergebnis führt zur richtigen Zahl -47 (11010001) Ist die Frage, ob dies formal der korrekte Weg ist? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Rienne Geschrieben 25. Februar 2019 Teilen Geschrieben 25. Februar 2019 (bearbeitet) Huhu, dein Denkfehler besteht darin, dass du bei der Addition auch das Bit für das Vorzeichen mit berücksichtigen musst. Stichwort: Vorzeichenerweiterung. (https://de.wikipedia.org/wiki/Zweierkomplement#Vorzeichenerweiterung) Sprich, du musst die 9. Stelle bereits beim Addieren/Bilden den Zweierkomplements berücksichtigen. D.h. bei der ersten Rechnung wäre es: (0) 0010 0000 + (1)1111 0001 = (0)0001 0001 => Vorne Null = Zahl positiv Und bei der zweiten eben: (1)1110 0000 +(1)1111 0001 =(1)1101 0001 => Vorne Eins = Zahl negativ Von dieser Zahl das Zweierkomplement ist 47, da aber die 1 vorne an 9. Stelle stand, weißt du, dass das Ergebnis also -47 ist. Bearbeitet 25. Februar 2019 von Rienne Kiggie reagierte darauf 1 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Kiggie Geschrieben 26. Februar 2019 Autor Teilen Geschrieben 26. Februar 2019 (bearbeitet) Hallo, vielen Dank, ich höre zum ersten Mal davon ? Bisher haben alle Rechnungen so funktioniert, so dass ich es nur kannte, mit bzw. ohne Überlauf und die Deutung der Zahl daraus. Aber danke für den Hinweis und den Link, dann schaue ich mir das noch einmal damit an. EDIT: Dort steht aber: "Solange der gültige n-stellige Zahlenbereich, bei 8 Bit breiten Zahlen der Wertebereich der Summe von −128 bis +127, nicht verlassen wird, funktioniert dieses Vorgehen ohne Vorzeichenerweiterung problemlos." Und ich verlasse den Wertebereich ja eigentlich nicht. Woher weiß ich denn dann, wann ich mit und wann ohne Vorzeichenerweiterung arbeiten muss? Viele Grüße Bearbeitet 26. Februar 2019 von Kiggie Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Rienne Geschrieben 26. Februar 2019 Teilen Geschrieben 26. Februar 2019 (bearbeitet) vor 36 Minuten schrieb Kiggie: Dort steht aber: "Solange der gültige n-stellige Zahlenbereich, bei 8 Bit breiten Zahlen der Wertebereich der Summe von −128 bis +127, nicht verlassen wird, funktioniert dieses Vorgehen ohne Vorzeichenerweiterung problemlos." Und ich verlasse den Wertebereich ja eigentlich nicht. Woher weiß ich denn dann, wann ich mit und wann ohne Vorzeichenerweiterung arbeiten muss? Ich würde es einfach immer machen. Wenn du dir die Beispiele vor dem Abschnitt "Vorzeichenerweiterung" anschaust, wird dort auch nicht wirklich klar, ob es sich um eine negative oder positive Zahl handelt: Zitat −4 + 3 = −1 entspricht: 11111100 + 00000011 = 11111111 (Quelle: Wikipedia) Denn so, wie es da steht, ist nicht ersichtlich, ob es 255 oder -1 ist. Würdest du bei dem Zweierkomplement von -4 jedoch die 1 an 9. Stelle berücksichtigen, wäre klar, dass es -1 sein muss. oder auch Zitat +4 − 3 = +1 entspricht: −4 − 3 = −7 entspricht: 0 00000100 1 11111100 + 1 11111101 + 1 11111101 = 1 00000001 = 1 11111001 = 0 00000001 = 1 11111001 Hier kann man genausowenig unterscheiden. Man muss bedenken, dass in diesen Fällen der Überlauf, ohne dass man das Vorzeichenbit berücksichtigt, nicht wirklich auf das Vorzeichen des Ergebnisses zu schließen ist. Wäre hier z.B. bei +4 - 3 das Vorzeichenbit vorhanden, ist direkt klar, dass das Ergebnis positiv ist (siehe rote Zahlen). Außerdem solltest du berücksichtigen, dass es für dich, der die Zahlen, mit denen subtrahiert werden soll, kennt und auch selber logisch entscheiden kann, welche der beiden Varianten in dem Fall die richtige ist, entscheidbar ist, ob das Ergebnis positiv oder negativ zu interpretieren ist. Ein Rechner kann das nicht. Bearbeitet 26. Februar 2019 von Rienne Kiggie reagierte darauf 1 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Kiggie Geschrieben 26. Februar 2019 Autor Teilen Geschrieben 26. Februar 2019 Das ist ein guter Denkanstoß. Danke. Ich komme nicht aus dem IT-Bereich, sondern habe das an der Uni in Grundlagen Informatik im ET-Studium. Heißt, ich kann zwar rechnen und mit Zahlen umgehen, aber die Verknüpfung zum Rechner ist nicht wirklich Thema. Kannst du zufällig ein gutes Buch in dem Bereich empfehlen? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Rienne Geschrieben 26. Februar 2019 Teilen Geschrieben 26. Februar 2019 vor 11 Minuten schrieb Kiggie: Kannst du zufällig ein gutes Buch in dem Bereich empfehlen? Leider nein. Mein ET-Studium liegt gut 10 Jahre zurück und ich meine, dass wir in den Informatik-Kursen auch keine Bücher verwendet haben. Und im jetzigen Studium arbeiten wir auch vor allem mit Skripten und dem www. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Kiggie Geschrieben 26. Februar 2019 Autor Teilen Geschrieben 26. Februar 2019 Danke trotzdem Habe ja nun auch ein Stichwort nach dem ich suchen kann. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.