Was ist effizienter? Mit pow quadrieren oder einfach mit sich selbst multiplizieren?
In C ist die Verwendung von x * x zum Quadrieren im Allgemeinen effizienter als die Verwendung von pow(x, 2), da pow einen Funktionsaufruf mit zusätzlichem Overhead beinhaltet .
In C können jedoch beide Ansätze aufgrund von Compileroptimierungen effizient sein:
pow(x, 3) vs. x x x
In C sind pow(x, 3) und x * x * x normalerweise hinsichtlich der Effizienz gleichwertig. Die std::pow-Funktion von C hat eine allgemeinere Form (pow(double, double)), die Exponenten als Gleitkommazahlen behandelt.
Spezifische Überlegungen:
Hier sind die aktualisierten Benchmarks für GCC und Clang, die die Effizienz für verschiedene Exponenten testen:
Exponent | GCC (O3) | Clang (O3) |
---|---|---|
2 | x * x slightly faster | Similar |
3 | x * x * x faster | Similar |
4 and above | x * x * x * ... faster | Similar |
Zusätzliche Hinweise:
Das obige ist der detaillierte Inhalt vonIst pow(x, 2) oder x * x effizienter für die Quadrierung in C und C?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!