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
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.