Udostępnij za pośrednictwem


scalbn, , scalbnf, scalbnl, scalbln, , scalblnfscalblnl

Mnoży liczbę zmiennoprzecinkową przez całkowitą moc FLT_RADIX.

Składnia

double scalbn(
   double x,
   int exp
);
float scalbn(
   float x,
   int exp
);  // C++ only
long double scalbn(
   long double x,
   int exp
);  // C++ only
float scalbnf(
   float x,
   int exp
);
long double scalbnl(
   long double x,
   int exp
);

#define scalbn(X, INT) // Requires C11 or higher

double scalbln(
   double x,
   long exp
);

float scalblnf(
   float x,
   long exp
);
long double scalblnl(
   long double x,
   long exp
);

#define scalbln(X, LONG) // Requires C11 or higher

float scalbln(
   float x,
   long exp
);  // C++ only
long double scalbln(
   long double x,
   long exp
);  // C++ only

Parametry

x
Wartość zmiennoprzecinkowa.

exp
Wykładnik liczby całkowitej.

Wartość zwracana

Funkcje scalbn zwracają wartość exp po pomyślnym wykonaniux * FLT_RADIX. Po przepełnieniu (w zależności od znaku x), scalbn zwraca wartość +/- HUGE_VAL; errno wartość jest ustawiona na ERANGE.

Aby uzyskać więcej informacji na temat errno możliwych wartości zwracanych przez błąd, zobaczerrno , _doserrno, _sys_errlisti _sys_nerr.

Uwagi

FLT_RADIX element jest zdefiniowany w <zmiennoprzecinku zmiennoprzecinkowym> jako natywny radiks zmiennoprzecinkowy; w systemach binarnych ma wartość 2 i scalbn jest odpowiednikiem ldexp.

Ponieważ język C++ umożliwia przeciążenie, można wywoływać scalbn i przeciążenia, które przyjmują i scalbln zwracają float lub long double typy. W programie języka C, chyba że używasz <makra tgmath.h> do wywołania tej funkcji, scalbn zawsze przyjmuje element i int i zwraca doubleelement , i scalbln zawsze przyjmuje double double element i long i zwraca doublewartość i .

Jeśli używasz <makr tgmath.h>scalbn() lub scalbln , 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

Function Nagłówek języka C Nagłówek języka C++
scalbn, , scalbnf, scalbnl, scalbln, , scalblnfscalblnl <math.h> <cmath>
scalbn lub scalbln makro <tgmath.h>

Aby uzyskać więcej informacji o zgodności, zobacz Zgodność.

Przykład

// crt_scalbn.c
// Compile using: cl /W4 crt_scalbn.c
#include <math.h>
#include <stdio.h>

int main( void )
{
   double x = 6.4, y;
   int p = 3;

   y = scalbn( x, p );
   printf( "%2.1f times FLT_RADIX to the power of %d is %2.1f\n", x, p, y );
}

Wynik

6.4 times FLT_RADIX to the power of 3 is 51.2

Zobacz też

Obsługa obliczeń matematycznych i zmiennoprzecinkowych
frexp
ldexp
modf, , modffmodfl