ForumForum

IRC-ChatIRC-Chat

LinksLinks

ImpressumImpressum
http://www.kabelmeister.de - Der Spezialist für Computerkabel
      NewsNews
      WebweitesWebweites
      Test Area 51Test Area 51
      Case Gallery[1072]Case Gallery[1072]
      KabelKabel
      LCDLCD
      LED/NeonLED/Neon
      LüfterLüfter
      Plexi/WindowPlexi/Window
      ProjekteProjekte
      Alles andereAlles andere
      LüftersteuerungenLüftersteuerungen
      DigitalDigital
      SonstigesSonstiges
      BauteileBauteile
      Tipps & TricksTipps & Tricks
      Case-Gallery Case-Gallery
      Case-Modder Case-Modder
      Caseumbau Caseumbau
      DNA-Tutorials DNA-Tutorials
      Eiskaltmacher Eiskaltmacher
      Moddingtech Moddingtech
      PlexMod PlexMod
      VRinside VRinside
      Testix Testix



website monitoring

eXTReMe Tracker





AktuellesAktuelles

CM Storm Trigger im Härtetest

Plexiglas bearbeiten

NZXT - Adamas

NZXT - Apollo
Letzte Foren-BeiträgeLetzte Foren-Beiträge
Re: Lang lebe das Modding-FAQ-Forum
Re: Lang lebe das Modding-FAQ-Forum
Re: Lang lebe das Modding-FAQ-Forum
Re: Lang lebe das Modding-FAQ-Forum
Re: Lang lebe das Modding-FAQ-Forum
Re: "Lady Liberty"

Grundlagen der Digitaltechnik - Teil 5: Addieren und SubtrahierenGrundlagen der Digitaltechnik - Teil 5: Addieren und Subtrahieren

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:

Subtraktion auf der binären Ebene

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:

Hardwareseitiges Subtrahieren binärer Eingaben

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