Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Mnoży liczbę zmiennoprzecinkową przez całkowitą moc dwóch.
Składnia
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 later
float ldexp(
float x,
int exp
); // C++ only
long double ldexp(
long double x,
int exp
); // C++ only
Parametry
x
Wartość zmiennoprzecinkowa.
exp
Wykładnik liczby całkowitej.
Wartość zwracana
Jeśli ldexp funkcja zakończy się pomyślnie, funkcja zwróci wartość x * 2exp . Po przepełnieniu i w zależności od znaku xldexp funkcja zwraca wartość +/- HUGE_VAL; errno wartość jest ustawiona na ERANGEwartość .
Aby uzyskać więcej informacji na temat errno możliwych wartości zwracanych przez błąd, zobaczerrno , _doserrno, _sys_errlisti _sys_nerr.
Uwagi
Ponieważ język C++ umożliwia przeciążenie, można wywołać przeciążenia ldexp tego typu float lub long double typu. W programie języka C, chyba że używasz <makra tgmath.h> do wywołania tej funkcji, ldexp zawsze przyjmuje double element i int i zwraca wartość double.
Jeśli używasz makra <tgmath.h>ldexp() , typ argumentu określa, która wersja funkcji jest zaznaczona. Aby uzyskać szczegółowe informacje, zobacz Typy ogólne matematyczne .
Domyślnie stan globalny tej funkcji jest zakresem aplikacji. Aby zmienić to zachowanie, zobacz Stan globalny w CRT.
Wymagania
| Procedura | Nagłówek języka C | Nagłówek języka C++ |
|---|---|---|
ldexp, , ldexpfldexpl |
<math.h> | <cmath> |
ldexp Makro |
<tgmath.h> |
Aby uzyskać informacje o zgodności, zobacz Zgodność.
Przykład
// 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 );
}
Wynik
4.0 times two to the power of 3 is 32.0
Zobacz też
Obsługa obliczeń matematycznych i zmiennoprzecinkowych
frexp
modf, , modffmodfl