Beim dualen Zahlensystem existieren nur
die zwei Zahlzeichen 0 und 1. Entsprechend muss ein Computersystem
auch nur zwei Spannungszustände unterscheiden können.
Dies ist im einfachsten Fall Spannung nicht vorhanden (0V)
und Spannung vorhanden (5V).
Der Aufbau des Dualsystems entspricht dem
Aufbau des Dezimalsystems. Die Basis ist allerdings 2. Damit
ergeben sich natürlich Unterschiede in der Wertigkeit der Stellen.
So gibt es hier keine Einer-, Zehner- oder Hunderterstelle, sondern
- wie das Beispiel unten zeigt - eine Einer-, Zweier-, Vierer-,
Achterstelle usw.:

Hätten Sie sofort erkannt, dass die
Dualzahl die Zahl der Tage pro Jahr darstellt? Keine Angst, dass
ist reine Gewohnheit. Der Computer hat damit keine Probleme, er
macht das seit seiner "Geburt"! Zur Übertragung der
Zahl 365 im Dualcode benötigt das EDV-System einen "Datenbus"
mit 9 elektrischen Leitungen. (Wie viele waren es noch mal im Dezimalsystem?..)
Die Umwandlung von Dualzahlen in Dezimalzahlen
ist eigentlich ganz einfach, wenn man nur die Stellen mit ihrer
Wertigeit addiert, die 1 sind. So ist 1100111001 = 29+28+25+24+23+20
= 512 + 256 + 32 + 16 + 8 + 1 = 825. Mit ein wenig Übung geht
das wirklich leicht von der Hand!
Umgekehrt verwendet
man für die Umwandlung von Dezimalzahlen in Dualzahlen häufig
das Resteverfahren. Die Dezimalzahl wird durch 2 geteilt und es
verbleibt als Rest 0 oder 1. Das Divisionsergebnis wird wieder durch
2 geteilt und auch hier wird der Rest notiert. Dies setzt sich solange
fort, bis das Divisionsergebnis 0 ist. Die "Reste" bilden
dann von unten nach oben gelesen die Dualzahl.
Ist man es gewohnt, kann man mit Dualzahlen
die gleichen mathematischen Operationen durchführen wie im
Dezimalsystem.
Addition von Dualzahlen
Beim Addieren von
Dualzahlen wird analog zum Rechnen mit Dezimalzahlen vorgegangen.
Die Zahl wird Stellenweise von Rechts nach Links addiert. Ist die
Summe der Zahlen zu groß für eine Stelle, erfolgt ein
Übertrag in die nächste Stelle. Werden mehrere Zahlen
addiert, kann es auch Überträge in noch höhere Stellen
geben.
Bei der Addition zweier dualer Ziffern ist
der größte Wert 1 + 1 = 10 . Es erfolgt hier also
ein Übertrag in die nächste Stelle. Werden drei Ziffern
addiert, so kann 1 + 1 + 1 = 11 herauskommen. Die aktuelle
Stelle ist 1 und es erfolgt ein Übertrag. Entsprechend gilt
für 1 + 1 + 1 + 1 = 100. D. h. es erfolgt ein Übertrag
in die übernächste Stelle.
Subtraktion von Dualzahlen 
Beim Subtrahieren
wird ebenfalls bei der niederwertigsten Stelle (LSB=least significant
bit) begonnen. Ist die entsprechende Stelle des Minuenden kleiner
als die des Subtrahend, (also bei 0 - 1 ) muss von der nächst
höheren Stelle eine 1 "geborgt" werden. Der
Borger wird bei der nächsten Stelle dann zum Subtrahenden addiert.
Ist der Subtrahend
insgesamt größer als der Minuend, gelangt man zur Zweierkomplement-
darstellung. Dies bedeutet, dass die Subtraktion unendlich
fortgesetzt werden kann, da am Ende jede neue Stelle wieder mit
einem Borger subtrahiert werden muss. Im Beispiel sind ab der 10.ten
Stelle (dual) alle Bits auf 1 zu setzen. Im Dezimalsystem
bedeutet dies, dass ab der 4.ten Stelle nur noch 9en stehen.
Um die Zahl wie
gewohnt lesen zu können, gibt es zwei Möglichkeiten
zur Rückgewinnung des Zahlenwertes aus dem Zweierkomplement.
1. Bei 2n-1 Stellen wird das Zweierkomplement
vom Wert 2n abgezogen. Diese Lösung ist meist
jedoch unpraktikabel, da etwa in einem 8 Bit-System kein 9-Bit Zahlenwert
dargestellt werden kann.
2. Die negative
Dualzahlen im Zweierkomplement wird stellenweise invertiert
und anschließend um 1 erhöht.
Dieser Vorgang wird besonders in der Darstellung
der Dualzahlen in einem Zahlenkreis deutlich. Eine 3 stellige Dualzahl
kann die Werte 000 - 111 annehmen. Die Addition 111 + 1 ergbäbe
1000. Diese Zahl ist aber mit 3 Bit nicht mehr darstellbar und wir
erhalten daher als Ergebnis von 000. Man spricht hier von einem
Überlauf. Dies ist der größte Albtraum
eines jeden Programmierers und sollte dringlichst vermieden werden
(die Assemblerprogrammierung kennt allerdings auch sinnvolle Anwendungen
für den Überlauf!!). Die Subtraktion mit Zweierkomplementen
kann am Zahlenkreis jetzt sehr anschaulich gezeigt werden.

Am Borger (=1) lässt sich nach der
Subtraktion erkennen ob eine Zahl negativ ist. Die unten
abgebildete Rechenvorschrift (PAP) läßt sich in einem
Mikrocomputersystem sehr einfach realisieren, wie das abgebildete
Assemblerlisting zeigt.  
|