Forum: Digitale Signalverarbeitung / DSP / Machine Learning 16 bit und 32 bit Zahl mutlipilzieren


von Johannes (Gast)


Lesenswert?

Hallo,

wie im Titel erwähnt, möchte ich eine 16 bit und eine 32 bit Zahl
multiplizieren und zwar möglichst resourcenschonend. Da ich auf einem
DSP (mit C) programmiere. Also bitte nicht mit Assembler antworten. Ich
habe gehört, daß man die 32 bit Zahl in zwei 16 bit Zahlen aufspalten
sollte und diese beide dann mit der ersten 16 bit Zahl multiplizieren.
Das Ergebnis sollte schliesslich irgendwie "versetzt" addiert werden.
So ähnlich wie man das mal irgendwann in der Grundschule gelernt hat.
Ist das wirklich das Beste? Und wie ist das mit dem Vorzeichen bzw. dem
Übertrag? Könnte Hilfe gebrauchen...

.. danke wenn ich welchen bekommen könnte

Johannes

von Alex (Gast)


Lesenswert?

In C kannst du auch einfach multiplizieren:

int i = 1000;
long int j = 100000;
long int ergebnis = 0;

ergebnis = (long int) i * j;

Der Compiler macht dann fürgewöhnlich das Beste draus.

von Michael (Gast)


Lesenswert?

Ich denke am schnellsten geht es mit dem Fraktionalen Datentyp (iq_).
Dazu mußt Du die IQ-Math Library von TI einbinden. Dann macht Dir der
Compiler den besten Code....

MfG
Michael

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.