Sdílet prostřednictvím


ldexp, , ldexpfldexpl

Vynásobí číslo s plovoucí desetinnou čárkou integrální mocninou dvou.

Syntaxe

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

Parametry

x
Hodnota s plovoucí desetinou čárkou

exp
Celočíselná exponent.

Vrácená hodnota

Funkce ldexp v případě úspěchu vrátí hodnotu x * 2exp . Při přetečení a v závislosti na znaménku xvrátí ldexp +/- HUGE_VAL; errno hodnota je nastavena na ERANGE.

Další informace o errno návratových hodnotách a možných chybách naleznete v tématuerrno , _doserrno, _sys_errlist, a _sys_nerr.

Poznámky

Vzhledem k tomu, že jazyk C++ umožňuje přetížení, můžete volat přetížení těchto ldexp převzetí float nebo long double typů. Pokud v programu jazyka C nepoužíváte <makro tgmath.h> k volání této funkce, ldexp vždy vezme a double a int vrátí hodnotu double.

Pokud použijete <makro tgmath.h>ldexp() , typ argumentu určuje, která verze funkce je vybrána. Podrobnosti najdete v tématu Matematika pro obecné typy.

Ve výchozím nastavení je globální stav této funkce vymezen na aplikaci. Chcete-li toto chování změnit, přečtěte si téma Globální stav v CRT.

Požadavky

Rutina Záhlaví jazyka C Hlavička jazyka C++
ldexp, , ldexpfldexpl <math.h> <cmath>
ldexp makro <tgmath.h>

Informace o kompatibilitě najdete v tématu Kompatibilita.

Příklad

// 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 );
}

Výstup

4.0 times two to the power of 3 is 32.0

Viz také

Podpora pro matematiku a plovoucí desetinou čárku
frexp
modf, , modffmodfl