Meine Frage:
Hallo leute ich habe gerade probleme bei einer Aufgabe:
Ich habe leider noch keine Ansätze.
Implementieren sie einen Code Ausschnitt mit einfacher EIn und Ausgabe mit dem sie die Multiplikation zweier Dualzahlen durchführen können, wenn ihr Prozessor nur addieren und schieben kann , nicht aber multiplizieren.
Die einzige Multiplikation die bleibt, ist die mit der 1 und 0, bei beiden kann mal das Ergebnis sagen, ohne rechnen zu müssen.
Erkennst du ein Muster?
Die erste Zahl (0101) bleibt als ganzes.
Die zweite wird bitweise untersucht:
das Ergebnis (zu Beginn=0) immer um eins shiften
wenn die zweite Zahl am betrachteten Bit eine 1 hat, 0101 auf das Ergebnis addieren.
Also
erg=00000000
erg shiften -> bleibt 00000000
erstes Bit der 2. Zahl betrachten
ist eine 1, also erg+=0101, somit erg= 00000101
shiften -> erg=00001010
zweites Bit der zweiten Zahl ist 0, also nicht addieren
So kannst du a und b aber nicht eingeben, das sind ja Binärzahlen, der Compiler interprtiert sie aber dezimal.
Nochmal zurück zur Multilpikation mit Stift und Papier:
Ich habe das mal so gelernt, dass man die 2. Zahl (10111) Ziffer für Ziffer durchgeht, mit der ersten Zahl "multipliziert" (binär heißt das, die 1. Zahl abzuschreiben, oder eine 0 hinzuschreiben) und das Ergebnis dann unter die entsprechende Ziffer der 2. Zahl schreibt. Genau diesen Algorithmus würde ich in Code fassen.