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_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 "Typgenerika" .

Standardmäßig gilt der globale Zustand dieser Funktion für die Anwendung. Informationen zum Ändern dieses Verhaltens finden Sie im Global state in the 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 );
}

Ausgabe

4.0 times two to the power of 3 is 32.0

Siehe auch

Mathematische und Gleitkommaunterstützung
frexp
modf, modff, modfl