Michael W.: Komplementaddition von dualen zahlen

Hallo,

ich "lerne" gerade wie man zb. 178-75 in dualen zaheln ausrechnet (oder was auch immer)...

das hier habe ich noch verstanden:
   44:2  89:2   178:2
   22    44     89
   0     1      0

usw.

am ende dann

1011010 (178)

  • 1001011 (75)

wenn ich mich nicht täusche?

und was ist jetzt die komplement addition? ich weiss abhier irgendiwe nicht weiter

irgendwann hatten wir dann mal die untere zahl umgedreht also bit für bit konvertiert

1011010

  • 0110100
    ---------
      ???????

ich hab keine ahnung und steh voll aufm schlauch.
kennt jemand einen link oder kann mir das jemand mal erklären?

MfG
Michael W.

  1. Hallo Michael,

    Dein Ansatz mit dem Komplementieren der Bits war schon richtig, allerdings scheint mir bei der binären Darstellung der beiden Zahlen jeweils ein Digit verlorengegangen zu sein.

    Infos: http://www.netzmafia.de/skripten/dvs/dvs3.html

    HTH Robert

  2. Moin!

    am ende dann

    1011010 (178)

    • 1001011 (75)

    wenn ich mich nicht täusche?

    und was ist jetzt die komplement addition? ich weiss abhier irgendiwe nicht weiter

    irgendwann hatten wir dann mal die untere zahl umgedreht also bit für bit konvertiert

    1011010

    • 0110100

    ???????

    Wenn du zwei Binärzahlen voneinander abziehen willst, dann geht das so:

    Die erste Zahl bleibt so, wie sie ist.

    Die zweite Zahl wird bitweise _invertiert_ (nicht konvertiert).

    Außerdem muß man noch "1" hinzuaddieren (das entspricht dem Setzen des Carry-Flags).

    Das Dumme beim Invertieren: Das gilt für alle Stellen, auch die, die man normalerweise vorne wegläßt.

    Also in leicht:

    128             10000000
     - 64             01000000

    = 128             10000000

    • (-64)  11111111 10111111
      +   1    00000000 00000001

    Addieren:
           1 00000000 01000000

    = 64

    Wenn das Carry-Bit (die 1 ganz vorn) gesetzt ist, ist die Zahl weiterhin positiv, ansonsten ist sie negativ.

    Mal als Gegenprobe:

    64  00000000 01000000
     - 128  00000000 10000000

    =   64  00000000 01000000
    +(-128) 11111111 01111111
    +    1  00000000 00000001
    =       11111111 11000000

    Und das sind, gemäß Adam Riese war es zu erwarten, -64.

    ich hab keine ahnung und steh voll aufm schlauch.
    kennt jemand einen link oder kann mir das jemand mal erklären?

    Google: Suche nach "binäre addition subtraktion" wäre doch naheliegend, oder?

    http://www.google.com/search?q=binäre+addition+subtraktion&sourceid=opera&num=0&ie=utf-8&oe=utf-8

    - Sven Rautenberg

    --
    "Bei einer Geschichte gibt es immer vier Seiten: Deine Seite, ihre Seite, die Wahrheit und das, was wirklich passiert ist." (Rousseau)