Subtraktion und negative Zahlen
Wenn der PC addieren kann, muss er doch auch subtrahieren können,
oder? Jein!
Um eine Subtraktion durchzuführen, bedient sich der PC eines
Tricks. Er addiert eine negative Zahl.
Ein Byte(= 8 Bit) kann 256 (= 28) verschiedene Werte
annehmen. Wenn man 2 Bytes addiert und ein Wert von über 255 heraus kommt,
wird alles überstehende einfach abgeschnitten. Der PC Fängt also wieder
bei 0 zu zählen an.Wenn man also von einer Zahl eine andere abziehen will,
kann man stattdessen auch eine andere Zahl addieren, Hauptsache der PC liefert
das korrekte Ergebnis.
Am besten sieht man das an einem Zahlenkreis. Hier am Beispiel einer 4-Bit-breiten
Zahl:

Rechnen wir mal 4 + 2 ==> Wir starten an Stelle 4, gehen 2
Stellen im Uhrzeigersinn und landen bei 6 (4+2=6).
Jetzt 7 – 5 ==> Wir starten bei 7 und gehen 5 Stellen gegen den Urzeigersinn.
Wir landen bei 2 (7-5=2).
Jetzt kann das Addierwerk aber nur addieren, also mit dem Uhrzeigersinn zählen.
Anstatt 5 Stellen gegen den Uhrzeigersinn zu gehen, kann man auch 11 Stellen
mit dem Uhrzeigersinn gehen. Und genau das macht der PC. Anstatt 5 abzuziehen,
addiert er einfach 11. Diese „11“ ist also eigentlich eine „-5“.
Wie man sieht, wird das höchstwertige Bit als Vorzeichen verwendet. Eine
„1“ steht für eine negative Zahle und eine „0“
für eine positive Zahl.
Um eine positive Zahl in eine negative oder eine negative in
eine positive Zahl umzuwandeln, muss man die Zahl invertieren („1“en
in „0“en umwandeln und umgekehrt) und mit 1 addieren.
010100102 = 8210
invertieren
101011012 +1
101011102 = -8210 |
Im PC sieht das ganze so aus:

Der 2. Eingang des ersten Halbaddierers ist dabei dauerhaft auf
High gezogen. Er stellt die zu addierende „1 dar. Wenn der PC jetzt also
A-B rechnen soll, wird B zuerst in eine negative Zahl (-B) umgewandelt und dann
die Summe A + (-B) gebildet.
Schlusswort
So das war jetzt ziemlich theoretisch und ich muss gestehen,
dass mir im Moment kein praktischer Verwendungszweck für das, was ihr grade
gelesen habt, einfällt. Es ist sicher nützlich, um zu verstehen, wie
ein PC bzw. ein µC funktioniert und vielleicht habt ihr jetzt ein bisschen
mehr Respekt vor diesen „Rechenmaschinen“, aber falls euch ein praktischer
Verwendungszweck einfällt, könnt ihr ihn ja posten ;-).
<<<
-05-
Kommentare
|