ldexp
, ldexpf
ldexpl
Multipliziert eine Gleitkommazahl mit einer ganzzahligen Potenz von zwei.
Syntax
double ldexp(
double x,
int exp
);
float ldexpf(
float x,
int exp
);
long double ldexpl(
long double x,
int exp
);
#define ldexp(X, INT) // Requires C11 or higher
float ldexp(
float x,
int exp
); // C++ only
long double ldexp(
long double x,
int exp
); // C++ only
Parameter
x
Gleitkommawert.
exp
Ganzzahlexponent.
Rückgabewert
Die ldexp
Funktionen geben den Wert von x
* 2exp
zurück, wenn die Funktion erfolgreich verläuft. Beim Überlauf und je nach Zeichen von x
, gibt +/- HUGE_VAL
zurück; der errno
Wert wird auf ERANGE
ldexp
.
Weitere Informationen zu errno
und möglichen Fehlerrücklaufwerten finden Sie unter errno
, , _doserrno
, _sys_errlist
und _sys_nerr
.
Hinweise
Da C++ das Überladen zulässt, können Sie Überladungen von ldexp
aufrufen, die float
oder long double
-Typen verwenden. In einem C-Programm, es sei denn, Sie verwenden das <Makro tgmath.h> , um diese Funktion aufzurufen, ldexp
nimmt immer ein double
und ein int
und gibt eine double
zurück.
Wenn Sie das Makro <tgmath.h>ldexp()
verwenden, bestimmt der Typ des Arguments, welche Version der Funktion ausgewählt ist. Ausführliche Informationen finden Sie unter Typgengenerische Mathematik.
Standardmäßig gilt der globale Zustand dieser Funktion für die Anwendung. Wie Sie dieses Verhalten ändern, erfahren Sie unter Globaler Status in der CRT.
Anforderungen
Routine | C-Header | C++-Header |
---|---|---|
ldexp , ldexpf ldexpl |
<math.h> | <cmath> |
ldexp -Makro |
<tgmath.h> |
Informationen zur Kompatibilität finden Sie unter Kompatibilität.
Beispiel
// crt_ldexp.c
#include <math.h>
#include <stdio.h>
int main( void )
{
double x = 4.0, y;
int p = 3;
y = ldexp( x, p );
printf( "%2.1f times two to the power of %d is %2.1f\n", x, p, y );
}
Output
4.0 times two to the power of 3 is 32.0
Siehe auch
Mathematische Unterstützung und Gleitkommaunterstützung
frexp
modf
, modff
modfl