16 bit und 32 bit Zahl mutlipilzieren

Gast #204559
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
Gast #204560
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.
Gast #204561
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

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 21 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.