Wenn man aus einer ganzen Zahl die Quadratwurzel ziehen will,
nimmt man besser eine ganzzahl-Quadratwurzel-Funktion. int isqrt(int n)
{
register unsigned int m, root = 0, left = n;
for ( m=1; m < n>>2; m <<= 2);
for (; m; m >>= 2)
if ( ( left & -m) > root)
left -= ( root += m), root += m;
root >>= 1;}
return root;}
int z=9;
z=isqrt(z);
printf("%d", z);
liefert dann 3
gaast (Gast)
26. 2012 18:03
nicht der Karl-Heinz schrieb:
> Das nennt sich "call by value" und
> ist, ich nenne es einfach mal eine "Spezialität" von C. Daher wird die
> Funktion auch an der originalen Variable z selbst nichts ändern
Das ist nun wirklich keine Eigenheit von C.
MaWin schrieb:
> aber jeder anständige uC hat dann den Speicher voll,
> denn printf zum ausdrucken von floating point Zahlen
> ist dutzende Kilobytes gross (und muss manchmal erst
> explizit eingeschaltet werden). >
> Wenn man aus einer ganzen Zahl die Quadratwurzel ziehen will,
> nimmt man besser eine ganzzahl-Quadratwurzel-Funktion. Wurzelziehen in C++ - C, C++, C#, Java und andere Programmiersprachen - spieleprogrammierer.de. Ob es sich auf dem PC (Forum beachten) wohl lohnt, das bisschen Speicher
zu sparen?
PositiveInfinity
Beispiele
Die Quadratwurzel des Bereichs eines Quadrats stellt die Länge einer beliebigen Seite des Quadrats dar. Im folgenden Beispiel wird die Fläche einiger Städte in der USA angezeigt und gibt einen Eindruck von der Größe jeder Stadt, wenn sie durch ein Quadrat dargestellt wurde. // Create an array containing the area of some squares. Tuple[] areas =
{ ("Sitka, Alaska", 2870. 3),
("New York City", 302. 6),
("Los Angeles", 468. 7),
("Detroit", 138. 8),
("Chicago", 227. 1),
("San Diego", 325. 2)};
Console. WriteLine("{0, -18} {1, 14:N1} {2, 30}\n", "City", "Area (mi. )",
"Equivalent to a square with:");
foreach (var area in areas)
Console. Programm zum Wurzel ziehen - C/C++, Visual C++, Visual C++.NET - Paules-PC-Forum.de. WriteLine("{0, -18} {1, 14:N1} {2, 14:N2} miles per side",
em1, em2, ((em2), 2));
// The example displays the following output:
// City Area (mi. ) Equivalent to a square with:
//
// Sitka, Alaska 2, 870. 3 53. 58 miles per side
// New York City 302. 6 17. 40 miles per side
// Los Angeles 468. 7 21. 65 miles per side
// Detroit 138.
Kann sogar sein das die funktion schneller ist, also die Standardfunktion sqrt(). Jedenfalls ist Wurzelziehen recht langsam.. Wir leben alle unter dem Sternenhimmel, aber wir haben nicht alle den gleichen Horizont.