ldexp ist definiert in der math
, die in C über math.h
, bzw. in C++ über cmath
eingebunden wird.
ldexp multipliziert den übergebenen Faktor mit zwei um den Exponenten potenziert. (result = factor * 2exp
)
#include <math.h> double ldexp( double factor, int exp ); float ldexp( float factor, int exp ); // nur C++ long double ldexp( long double factor, int exp ); // nur C++
factor: Wert, mit dem die Potenz von exp zur Basis 2 multipliziert wird
exp: Exponent zur Basis zwei
Return value: Ergebnis der Formel result = factor * 2exp
-
#include <stdlib.h> // für EXIT_SUCCESS #include <math.h> // für log10 #include <stdio.h> // für printf() int main( void ) { double factor = 3; double exp = 2; double result; result = ldexp( factor, exp ); printf( "%f * 2^%f entspricht %f\n", factor, exp, result ); return EXIT_SUCCESS; }
Ausgabe:
3.000000 * 2^2.000000 entspricht 12.000000
ldexp lässt sich mit frexp() umkehren. Der Faktor darf beliebig gewählt sein und muss nicht größer -1.0 und kleiner 1.0 sein, wie er bei frexp() zurückgegeben wird. Größere Werte als +1.0, bzw. kleinere Werte als -1.0 als factor
werden in den Exponenten umgerechnet.