Binäre Zahlen in der Informatik - Rechnen im Dualsystem / Binärsystem
StartseiteKontaktImpressum

Division von binären Zahlen

Vorbemerkung zur Division

Viele Divisionen haben als Ergebnis eine Zahl mit einer oder mehreren Stellen hinter dem Komma, einige dieser Nachkommazahlen sind sogar unendlich.

Beispiel 1: Teile ich 7 durch 2, so bekomme ich als Ergebnis 3,5 - eine endliche Zahl mit einer Nachkommastelle.

Beispiel 2: Teile ich 10 durch 3, so bekomme ich als Ergebnis 3,33333... - eine unendliche Zahl mit unendlich vielen Nachkommastellen.

Diese Zahlen betrachten wir an späterer Stelle nocheinmal genauer, denn hier kommt es zu einem weiteren Problem in der elektronischen Datenverarbeitung: der ungenauen Darstellung von Nachkommazahlen.

Die "einfache" Division

Bei der Multplikation wird ein Links-Shift durchgeführt, dementsprechend ist es logisch, dass bei der Division ein Rechts-Shift durchgeführt wird. Teile ich die Zahl 8 durch 2 ergibt das 4, in Dualschreibweise 00001000 / 00000010 = 00000100. Die Division durch 2 entspricht also einem Rechts-Shift von einer Stelle. Die Division von 8 durch 4 ergibt 2, in Dualschreibweise 00001000 / 00000100 = 00000010, also ein Rechts-Shift von zwei Stellen.

Die Division

Was passiert nun aber mit Nachkommastellen? Schauen wir uns die einfache Division von 3 durch 2 an. 00000011 / 00000010 = 00000001 Der Rechts-Shift bewirkt, dass die letzte 1 rechts aus dem Zahlenbereich "herausfällt". Das bedeutet, dass alle Nachkommastellen abgeschnitten werden. Wichtig: Es wird nicht gerundet, es wird abgeschnitten. Das Ergebnis aus 3 durch 2 ist also 1!!! Diese Art der Division funktioniert jedoch nur, wenn man durch 2 oder eine Potenz von 2 dividiert. Wir kommen jedoch auch mit unserer ganz normalen "Grundschulmathematik" weiter. Hier ein Beispiel, wie man im Dezimalsystem normalerweise dividiert:

   1307/11=118 Rest 9
  -11
   ==
    20
   -11
    ==
     97
    -88
     ==
      9

Wenn man diese Art der Division jetzt nach dem gleichen Schema bei binären Zahlen durchführt, dann kommt man auf das gleiche Ergebnis.

   10100011011/1011=01110110 Rest 1001
 -    0|||||||
  =====|||||||
   10100||||||
  - 1011||||||
   =====||||||
    10010|||||
   - 1011|||||
    =====|||||
      1111||||
    - 1011||||
     =====||||
       1001|||
     -    0|||
      =====|||
       10010||
      - 1011||
       =====||
         1111|
       - 1011|
        =====|
          1001
         -   0
          ====
          1001

Rechnet man die Dualzahlen jetzt wiederum in binäre Zahlen um, so kommt man wieder auf 1307/11=18 Rest 9 (siehe oben). Auch hier gilt wieder: Der Rest wird gnadenlos abgeschnitten, nicht gerundet. D.h. Der "Rest" entfällt.