multiplizieren/dividieren im 2er Komplement
-
Das wäre auch das einzige, was mir so einfällt. Das würde aber bedeuten, dass diese Operationen
- keine konstante Laufzeit haben
- 93875986345986 / 2 ewigst lange dauern mussund beides kann ich mir nicht so recht vorstellen.
@Korbinian: Ich weiß nicht so recht, worauf du hinauswillst. Ist dir meine Fragestellung klar?
-
ja eigentlich schon
ist dir klar wie eine cpu funktioniert?
in der cpu wird nur addiert und subtrahiert. solche großen zahlen werden "schnell" multipliziert/dividiert. sprich geshiftet und dann noch n paar mal addiert/subtrahiert. beim addieren können gewisse sachen auftreten: carry bit, etc. und z.b. auch ein negative flag. also kann man multiplizieren und das negative flag entsprechend setzen, wenn eine der beiden negativ war. hoffe das hilft
-
solche großen zahlen werden "schnell" multipliziert/dividiert. sprich geshiftet und dann noch n paar mal addiert/subtrahiert.
bei 9238479823 / 7 kann man doch nichts shiften, oder sehe ich das falsch?
-
ok dann halt die "normale" division, ich kanns mal raussuchengeht wie im zehnersystem nur im 2er
-
Ich kann die nicht mehr - nur noch mit Polynomen.
Aber mal im Ernst: beim schriftlichen Teilen wird doch die Division auch nur zerlegt.
Ist das wirklcih der Ansatz, den man verwendet? Oder meinst du ein ganz anderes Verfahren?Und ja, ich weiß im Großen und Ganzen, wie ein Prozessor prinzipiell funktioniert.
-
-
Stichwort Booth-Algorithmus
Für Division und Multiplikation gibt es doch extra Divisions- und Multiplikations-Werke, soweit ich weiss.
-
@vR:
Das Entscheidende fehlt leider.
Wie im 2er-Komplement multipliziert und dividiert wird, bleibt offen.
-
Würd mich jetzt aber auch interressieren, da wir in der Schule gerade gelernt haben wie man multipliziert, aber da wird einfach so multipliziert wie man es von Mathe her kennt, nur eben im Binärsystem.
-
booth ist glaub ich schon ein gutes Stichwort. Morgen schau ich mir dazu ein bisschen was an, danke auf jeden Fall mal.
-
die mul/div schaltwerke hören sich gut an. z.b. kann man einen 2 bit multiplizierer hübsch hart verdrahten mit ein paar and gattern. je mehr bits um so aufwändiger, aber machbar müsste es sein. aber ich glaub irgendwie imme rnoch, dass die cpu nur 8/16/32 bit dinger hat, und keine ahnung von irgendwelchen komplementen. lass mich aber gern eines bessren belehren
-
"Keine Ahnung von Komplementen" - damit meinst du was? Selbstverständlich gibt es keine eigenen Register dafür, aber es gibt sehr wohl eigene Maschinenbefehle für signed/unsigned Operationen wie shiften, addieren, ...
Und die nehmen natürlich auch eine gewisse Art der Darstellung jeweils an.
-
ok: du hast mich enttarnt, ich hab einfach keine ahnung
-
Ich schreibe Mittwoch über diese ganzen Hardware-Einheiten eine Klausur, den Booth-Algo muss ich beherrschen etc.
Bei uns im Skript ist abgebildet, wie der in der Hardware umgesetzt wird, das läuft halt irgendwie über Zustandsautomaten.Du kannst mal hier schauen:
http://www.ra.informatik.tu-darmstadt.de/lehre/vorlesungen/rt2/vorlesung/F03-Rechenwerke.pdfDu findest dort viele Informationen über Rechenoperationen mit 2K-Zahlen, auch Beispiele, Booth beginnt ab Seite 55.
-
Da werd ich mal reinschaun, danke.