Mathematik-Grundbegriffe für Programmierer

Zweierkomplementdarstellung und Subtraktion von Dualzahlen

LinkedIn Learning kostenlos und unverbindlich testen!

Jetzt testen Alle Abonnements anzeigen
Die Zweierkomplementdarstellung ist eine gebräuchliche interne Repräsentation ganzer positiver und negativer Zahlen und lässt sich auf eingängige Weise abbilden. Insbesondere ist auch das digitale Rechnen damit sehr einfach. In dem Video sehen Sie die Subtraktion von Dualzahlen auf diese Weise.
07:52

Transkript

Selbstverständlich können Sie alle dezimalen Zahlen in duale Zahlen wandeln und dabei bei der dualen Darstellung bei der 0 beginnen, das heißt, die dezimale 0 ist auch die duale 0. Die dezimale 1 ist die duale 1. Die dezimale 2, 1-0 und so weiter und so weiter. Aber wie verfahren Sie mit negativen Zahlen? Es ist sehr naheliegend, bei einer Darstellung einer Zahl in einem bestimmten Bitbereich, beispielsweise 8 Bit, das erste Bit als Vorzeichen-Bit zu wählen. Aber wie verfahren Sie dann? Es gibt eine sehr vernünftige Vorgehensweise, die nennt man die Zweierkomplementdarstellung. Nach dieser Darstellung arbeiten fast alle gängigen Programmiersprachen bei ganzen Zahlen. Auch diese Zweierkomplementdarstellung arbeitet mit einer Art Vorzeichen-Bit, aber es gibt einige Besonderheiten, die sie von anderen potenziellen Darstellungen auszeichnet. Das erste Bit ist das Vorzeichen-Bit, aber in der Zweierkomplementdarstellung kommt die 0 nur einmal vor, was man in einigen anderen Formen der Darstellung zum Beispiel nicht hätte. Und man nimmt bei der Zweierkomplementdarstellung die 0 quasi als Grenze, um den positiven Anteil und den negativen Anteil eines bestimmten Wertebereichs zu spiegeln. Von daher sind in dieser Darstellung 2^(N-1) Zahlen im negativen Bereich darstellbar und 2^(N-1)-1 Zahlen im positiven Bereich. Diese 1 müssen sie abziehen, weil bei der Zweierkomplementdarstellung die 0 zum positiven Bereich zählt. N ist die Anzahl der Stellen und dieses N ist im Prinzip beliebig: 2, 4, 6, 8, 10. Wenn Sie die Datentypen der Programmierung betrachten, dann sind in der Regel 8, 16, 32 oder 64 als Werte für N zu nehmen, ganz einfach auf Grund der Datentypen. Aber das ist nicht zwingend. Wir schauen uns mal ein Beispiel für die Darstellung einer Zahl nach dem Zweierkomplement an. Ich habe hier einen Wertebereich von 8 Bit, das entspricht beispielsweise in vielen Programmiersprachen dem Datentyp Byte. Die Regel beim Zweierkomplement ist, dass die Binärdarstellung der 0 auch der Zahl 0 entspricht und dann zählt man nach oben, also ganz konsequent, wie ich es eben angedeutet habe. Binär hier die 1 ist dezimal die 1, 1-0 ist die 2, 1-1 die 3, bis hier 7-mal oder N-1-mal - allgemein - die 1 auftaucht und damit hat man die höchste Zahl im positiven Wertebereich erreicht. Da ich hier mit 8 Bits arbeite, habe ich 2^7-1, 127 als Dezimalzahl. Um die negativen Zahlen abzubilden, nimmt man das erste Bit nun und dreht es um, das heißt, wir haben hier die 1. Dann fängt man am unteren Wertebereich an, das heißt, diese Darstellung entspricht in unserem Fall -128. Wenn wir hier eine 1 haben, haben wir -127, hier eine 1-0, -126, bis wir auch diesen Bereich hier vollständig wieder mit Einsen aufgefüllt haben und dann haben wir die -1. Sobald also die Darstellung im ersten Bit auf die Null "kippt" haben wir eine positive Zahl, solange wir hier eine 1 haben, haben wir eine negative Zahl. Diese Art der Interpretation ist - wie gesagt - nicht zwangsläufig. Rein theoretisch und das geht auch in einigen Zahlenmodellen, könnte man, das hier - diese Darstellung - auch als -0 werten. Und dann wäre 10000001 zum Beispiel -1, 10000010 ware -2. Das ist möglich, aber das hat eben den Nachteil, dass die 0 zweimal vorkommt und es gibt auch noch einige andere Nachteile, weswegen eben dieses Zweierkompliment so ideal für die Programmierung ist. Solche Zweierkomplementzahlen werden auch als Signed-Binary-Numbers oder Signed-Integers bezeichnet. Wir wollen damit jetzt noch ein bisschen rechnen. Ich habe hier zwei Zahlen, 5 und 6 dezimal und deren Binärdarstellung. Die kann ich addieren, selbstverständlich kommt die 11 raus. Binär addieren ist ganz einfach, 1 und 0 gibt 1, 0 und 1 gibt 1, 1 und 1 gibt 0 mit einem Übertrag 1 und hier haben wir sonst nur noch Nullen. Das ist die Binärdarstellung der 11. Die Subtraktion ist aber jetzt sehr interessant, denn die ist nicht trivial. Digitale Subtraktion ist wirklich aufwendig auf dem Computer, es sei denn, wir arbeiten mit einem Komplement bzw. der Zweierkomplementdarstellung. Schauen wir uns einmal an, was ich hier mache. Ich habe wieder die Zahl 5 und deren Dualdarstellung, hier hat sich nichts geändert. Die Zahl 6 ist aber hier geändert, genauer genommen die Darstellung, ich habe auch nicht die Zahl 6 hier, sondern das ist die Zahl -6 und die addiere ich. Mit anderen Worten, ich führe die Subtraktion auf die Addition einer negativen Zahl zurück und dann ist das Verfahren wieder vollkommen analog: 1 und 0 ist 1, 0 und 1 ist 1, 1 und 0 und so weiter und hier haben Sie jeweils Nullen und Einsen gegenüberliegend und deswegen kommt 8-mal die 1 hier und das ist die Darstellung von -1 in der Zweierkomplementdarstellung. Also nochmal das Verfahren zur Subtraktion von Dualzahlen: Zuerst bilde ich von der Zahl, die abgezogen werden soll, das Komplement. Das Komplement von dieser Zahl macht man durch Bildung des Einerkomplements, also alle Bits umdrehen, hier wo überall Nullen stehen, stehen jetzt Einsen und dann addiere ich 1 drauf, das heißt, diese 0 hier und die 1 entstehen einfach durch die Addition von 1 und dem Übertrag. Und wenn Sie dieses Komplement haben, addieren Sie diese beiden Zahlen, gegebenenfalls, wenn hier 1 und 1 stehen würde, der Übertrag auf eine nächste Stelle würde dann weggelassen. In unserem Fall durch 0 und 1 entsteht kein Übertrag. Ein negativer Übertrag wird beim Computer übrigens in einem speziellen Bit gespeichert, das man das Borrow-Bit nennt. Sie haben also in diesem Video gesehen, dass die Zweierkomplementdarstellung keine zwangsweise, aber eine sehr intelligente und nützliche Darstellung von Zahlen darstellt und dass man damit insbesondere die Subtraktion von dualen Zahlen auf die Addition einer negativen Version dieser Zahl zurückführen kann und diese ergibt sich auf Grund der Komplementbildung nach dem Zweierkomplement.

Mathematik-Grundbegriffe für Programmierer

Lernen Sie die Themenbereiche und Verfahren aus der Mathematik kennen, die bei der täglichen Programmierarbeit zum Einsatz kommen.

2 Std. 54 min (40 Videos)
Derzeit sind keine Feedbacks vorhanden...
Exklusiv für Abo-Kunden
Erscheinungsdatum:03.10.2016
Aktualisiert am:19.12.2016

Dieser Online-Kurs ist als Download und als Streaming-Video verfügbar. Die gute Nachricht: Sie müssen sich nicht entscheiden - sobald Sie das Training erwerben, erhalten Sie Zugang zu beiden Optionen!

Der Download ermöglicht Ihnen die Offline-Nutzung des Trainings und bietet die Vorteile einer benutzerfreundlichen Abspielumgebung. Wenn Sie an verschiedenen Computern arbeiten, oder nicht den ganzen Kurs auf einmal herunterladen möchten, loggen Sie sich auf dieser Seite ein, um alle Videos des Trainings als Streaming-Video anzusehen.

Wir hoffen, dass Sie viel Freude und Erfolg mit diesem Video-Training haben werden. Falls Sie irgendwelche Fragen haben, zögern Sie nicht uns zu kontaktieren!