division ganzer zahlen im dualsystem



  • wie dividiere ich ganze zahlen im 2er komplement im dualsystem?

    wie berücksichtige ich vorzeichen und rest?

    kann mir einer ein beispiel geben?

    und warum geht hier kein tex?



  • wie dividiere ich ganze zahlen im 2er komplement im dualsystem?

    Am einfachsten wie in der Schule:

    1000 : 10 = 100
    10
    --
     00
      0
      -
      00
       0
       -
       0 Rest.
    

    wie berücksichtige ich vorzeichen und rest?

    Verstehe die Frage nicht: Minus mal Minus ergibt Plus, ganz einfach.
    Der Rest bleibt als Zähler über dem Nenner, wie immer.



  • so um meine frage zu verdeutlichen:

    zu dividieren:

    -4 : 2 = -2
    im 4 bit system:

    1100 : 0010 = ?
    

    wie mach ich das? wie handle ich die 2 nullen von der 2?
    zu erwarten wäre ja 1110



  • Aber ein 4-Bit-System verwendet keiner.
    Deshalb hättest du noch Nullen dazwischen.

    Man kann zwar damit tricksen, die negativen Zahlen als ganz große aufzufassen,
    allerdings würde ich davon abraten -- wozu auch? Ich würde eine Funktions sign
    einführen, die entweder +1 oder -1 zurückgibt, und dann dazumultiplizieren.
    Vielleicht bist du gerade auf einem Microprocessor unterwegs, dann würde ich solche
    Optimierungen verstehen. Sie sind aber eigentlich nicht nötig.

    wie handle ich die 2 nullen von der 2?

    Lass sie einfach ganz weg für deinen Algorithmus.



  • shisha schrieb:

    zu dividieren:
    -4 : 2 = -2
    im 4 bit system:

    1100 : 0010 = ?
    

    wie mach ich das? wie handle ich die 2 nullen von der 2?
    zu erwarten wäre ja 1110

    du schiebst das ganze einmal nach rechts. aber das bit ganz links behält dabei seinen vorherigen wert. ansonsten: http://academic.evergreen.edu/projects/biophysics/technotes/program/2s_comp.htm#divide
    🙂



  • naja ich MUSS etwas verwenden das ich im moment nicht ganz verstehe vlt kann es mir ja einer erklären:

    A Q M=0011
    1111 1001
    1111 0010 shift
    +0011 add
    0010
    1111 0010 restore
    1110 0100 shift
    0001 add
    1110 0100 restore
    1100 1000 shift
    1111 1001 add / Q0=1
    1111 0010 shift
    0010 add
    1111 0010 restore
    1110 Negieren des Quotienten
    Rest(-1) Quotient(-2)

    das steht in unsrem skript als beispiel keine ahnung was da gemacht wird .



  • shisha schrieb:

    das steht in unsrem skript als beispiel keine ahnung was da gemacht wird

    im skript steht doch bestimmt noch mehr dazu. mit dem da^^ allein kann man (bzw. ich jedenfalls), nix anfangen.
    🙂


Anmelden zum Antworten