www.mikrocontroller.net

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


Important announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
Autor: Mr Gast (Gast)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht 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

Autor: A.R. (Gast)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht 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.

Autor: Stefan ++ (Gast)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht 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 !!!

Autor: W.S. (Gast)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht 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.

Beitrag #2668586 wurde vom Autor gelöscht.
Autor: Ralf G. (ralg)
Datum:

Diesen Beitrag bewerten:
lesenswert
nicht 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.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel




Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder GIF-Format hochladen.
Siehe Bildformate
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken erkennst du die Nutzungsbedingungen an.

webmaster@mikrocontroller.netImpressumNutzungsbedingungenWerbung auf Mikrocontroller.net