Addition von binären Zahlen
Vergleich Addition von Dualzahlen und Dezimalzahlen
Einige erinnern sich vielleicht noch an die
Addition von Zahlen wie wir sie in der Grundschule gelernt haben.
Wir schreiben die Zahlen untereinander und addieren sie Stelle für
Stelle. Dabei beginnen wir mit der letzten Stelle und arbeiten uns
langsam nach vorne durch. Die gleiche Vorgehensweise benutzen wir
nun auch wenn wir Dualzahlen addieren wollen.
Die Addition von Dualzahlen
Die Addition funktioniert wie bei der Addition von
Dezimalzahlen:
0111
+0100
====
1011
Es gelten die Regeln 0+0=0, 1+0=1, 0+1=1, 1+1=0 Übertrag 1. Im
Prinzip also nichts neues. Addiert man im Dezimalsystem 2 Zahlen so
kommt bei 5+5 auch 0 Übertrag 1 heraus. Der Übertrag wird bei
beiden System jeweils voran gestellt. Also gilt im Dualsystem
1+1=10.
Vorsicht Überlauf!
Die Addition ist im Prinzip problemlos. Es gibt
allerdings einen Haken an der Sache: Die Addition funktioniert nur
innerhalb eines bestimmten Wertebereiches. Woran liegt das? In der
Realität können wir beliebig grosse Zahlen darstellen. Das geht
leider nicht in der Informatik. Wir haben nur einen begrenzten Raum
zur Verfügung. Wir schränken hier die den Wertebereich auf ein Byte
ein. Normalerweise verwendet man zur Addition von ganzen Zahlen,
einen deutlich größeren Wertebereich, aber um einen überschaubaren
Rahmen zu haben, begrenzen wir uns absichtlich auf ein Byte. Unsere
größte darstellbare Zahl ist die 11111111, also dezimal 255. Was
passiert nun, wenn wir eine 00000001, also 1, addieren? Das
verrückte ist: es kommt 00000000, also 0 heraus.
Da bekanntlich 1+1=0 Übertrag 1 gibt, bekommt man als Ergebnis in
Wirklichkeit nicht 00000000 sondern 00000000 Übertrag 1. Dieser
letzte Übertrag kann jedoch nicht mehr gespeichert werden und wird
deshalb einfach ersatzlos gestrichen.
Es ergibt sich daraus jedoch auch eine gewisse Logik. Durch meinen
beschränkten Wertebereich komme ich irgendwann an meine obere
Grenze. Bei der Addition von 1 fängt dann jedoch der Wertebereich
wieder von vorne an, ich bin jetzt an der unteren Grenze, man
durchläuft dann wieder den Bereich bis zur oberen Grenze, usw. Wenn
wir also immer und immer wieder 1 addieren zählen wir unendlich oft
von 0 bis 255, dann wieder 0 bis 255 usw.