Moin, ich hab einen msp430f5438. Nun wuerde ich gerne moeglichst schnell die wurzel aus einer 32 bit zahl ziehen. Weiss da einer ne Lösung? Programmiersprache ist C. Ich hab Beispielcode(http://www.ti.com/sc/data/msp/databook/chp5.pdf) gefunden aber ich verstehe Ihn nicht so ganz: { unsigned long y, h; int i; h = x; x = y = 0; for (i = 0; i < 32; i++) { // x ist eigentlich 2*x x <<= 1; x++; // 4*x + 1 if (y < x) { x –= 2; } else y –= x; x++; y <<= 1; // <y, h> <<= 2 if (h & Minus) y++; h <<= 1; y <<= 1; if (h & Minus) y++; h <<= 1; } return x; } Mehr war da nicht angegeben. Wie es genau Funktioniert möchte ich gar nicht wissen (jetzt vom mathematischen her). Aber welchen Wert Übergebe ich der Funktion und was ist "Minus". Minus ist nirgends deklariert.
#include <math.h> /********************************************************************** * * long Sqrtlong(long il) * Wurzelziehen * **********************************************************************/ long Sqrtlong(long il) { long x1,x2; x1 = 1L; x2 = 0L; if(il == 0L) return(0L); do { x2 = x1; x1 = (x1 + il/x1); x1 = x1 >> 1; } while(labs(x1-x2)>1L); return(x1); } Hiermal meine Routine fuer das Wurzelziehen. Gruss Helmi
Ein einfaches Verfahren, dass auch schnelle konvergiert ist das sog. Heron Verfahren. Zudem ist es noch recht einfach zu implementieren. Gruß Mandrake
hmm aber mit dem beispiel von ti kann niemand was anfangen?
Also ich gehe davon aus, dass x an die funktion Übergeben wird bzw. die Zahl ist, aus der die Wurzel berechnet werden soll. Aber was macht Minus. Dem Namen nach anscheinend irgendwas vorzeichenmäßiges
Manni schrieb: > Also ich gehe davon aus, dass x an die funktion Übergeben wird bzw. die > Zahl ist, aus der die Wurzel berechnet werden soll. Aber was macht > Minus. Dem Namen nach anscheinend irgendwas vorzeichenmäßiges Ich schätze mal, das da noch eine Funktion vorgeschaltet wurde, die abfängt wenn eine negative Zahl übergeben wird und dieses in 'Minus' speichert. Auch wenn die Wurzel auf negative Zahlen eigentlich so nicht definiert ist.
Jürg Müller Software–Art GmbH/Zurich Frag doch mal den Herrn J. Müller ;-) in Zürich sprechen sie sogar Deutsch!
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.