Forum: Mikrocontroller und Digitale Elektronik 2 16-Bit-Zahl multiplizieren


von Mr Gast (Gast)


Lesenswert?

Hi!

Ich soll 2 16 Bit Zahlen multiplizieren.

Ich hab hier eine Formel:(x1 * F + x0) * (y1 * F + y0)

x=16 Bit-zahl
y=26 Bit-zahl

x1=High-Byte
x0=Low-Byte

y1=High-Byte
y0=Low-Byte

F=256(0....255)

Ich verstehe einfach nicht wie man auf die Formel da kommt. Kann mir das 
einer Bitte erklären?

Und warum mann gerade das High-Byte mit 256 multiplizieren muss.

mfg Mr Gast

von A.R. (Gast)


Lesenswert?

Mr Gast schrieb:
> Ich hab hier eine Formel:(x1 * F + x0) * (y1 * F + y0)

Und was soll die bedeuten? Da ist ja nichtmal ein Gleichheitszeichen 
enthalten.

Wenn man alles mit Gleichheitszeichen hinschreibt, wird es ganz einfach:
x = x1 * 256 + x0
y = y1 * 256 + y0

->   x * y = (x1 * 256 + x0) * (y1 * 256 + y0)
u.s.w.

von Stefan ++ (Gast)


Lesenswert?

Mr Gast schrieb:
> Und warum mann gerade das High-Byte mit 256 multiplizieren muss.

weil eine Multiplikation mit 256 genau einer Shift-Operation um 8 Bit 
nach links entspricht !!!

von W.S. (Gast)


Lesenswert?

Mr Gast schrieb:
> Ich soll 2 16 Bit Zahlen multiplizieren.

Na dann tu es doch einfach!

ich nehme aber mal an, daß dein Lehrer erwartet, daß du dir Gedanken 
darüber machst, wie man in der digitalen Welt Zahlen multipliziert.

Mein Tip: Es geht ganz genau so wie bei Adam Ries, bloß nicht mit 10 als 
Basis, sondern mit 2 als Basis.

Also Erg := a * b; zerlegt sich zu:

Erg =  aaaaaaa      * b(n)
      + aaaaaaa     * b(n-1)
      +  aaaaaaa    * b(n-2)
  ... usw.


W.S.

von Ralf G. (ralg)


Lesenswert?

W.S. schrieb:
> Mein Tip: Es geht ganz genau so wie bei Adam Ries, bloß nicht mit 10 als
> Basis, sondern mit 2 als Basis.

Bei der Formel ...
Mr Gast schrieb:
> Ich hab hier eine Formel:(x1 * F + x0) * (y1 * F + y0)
... sozusagen zur Basis 256.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.