Freigeben über


ldexp, ldexpfldexpl

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_VALzurück; der errno Wert wird auf ERANGEldexp .

Weitere Informationen zu errno und möglichen Fehlerrücklaufwerten finden Sie unter errno, , _doserrno, _sys_errlistund _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 doublezurü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, ldexpfldexpl <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, modffmodfl