Freigeben über


scalbn, , scalbnfscalbnl, scalbln, , scalblnfscalblnl

Multipliziert eine Gleitkommazahl durch eine integrale Potenz von FLT_RADIX.

Syntax

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

Parameter

x
Gleitkommawert.

exp
Ganzzahlexponent.

Rückgabewert

Bei Erfolg gibt die scalbn-Funktion den Wert von x * FLT_RADIXexp zurück. Beim Überlauf (abhängig vom Vorzeichen x) scalbn wird +/- HUGE_VALzurückgegeben; der errno Wert wird auf ERANGE. festgelegt.

Weitere Informationen zu errno und möglichen Fehlerrücklaufwerten finden Sie unter errno, , _doserrno, _sys_errlistund _sys_nerr.

Hinweise

FLT_RADIX wird in <float.h> als systemeigene Gleitkommaradiix definiert; auf binären Systemen hat sie einen Wert von 2 und scalbn entspricht ldexp.

Da C++ eine Überladung zulässt, können Sie Überladungen aufrufen scalbn und scalbln zurückgeben oder long double zurückgebenfloat. In einem C-Programm, es sei denn, Sie verwenden das <Tgmath.h-Makro> , um diese Funktion aufzurufen, scalbn nimmt immer ein double und gibt int ein und gibt ein und gibt ein doubleund scalbln immer ein double und gibt long einen doublezurück.

Wenn Sie die <Tgmath.h>scalbn() - oder scalbln Makros 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

Funktion C-Header C++-Header
scalbn, , scalbnfscalbnl, scalbln, , scalblnfscalblnl <math.h> <cmath>
scalbn oder scalbln Makro <tgmath.h>

Weitere Informationen zur Kompatibilität finden Sie unter Kompatibilität.

Beispiel

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

Output

6.4 times FLT_RADIX to the power of 3 is 51.2

Siehe auch

Mathematische Unterstützung und Gleitkommaunterstützung
frexp
ldexp
modf, modffmodfl