ldexp
, ldexpf
, ldexpl
Moltiplica un numero a virgola mobile per una potenza integrale di due.
Sintassi
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
Parametri
x
Valore a virgola mobile.
exp
Esponente dell'intero.
Valore restituito
Se ldexp
ha esito positivo, le funzioni restituiscono il valore * x
2exp
. In caso di overflow e a seconda del segno di x
, ldexp
restituisce +/- HUGE_VAL
; il errno
valore è impostato su ERANGE
.
Per altre informazioni sui errno
possibili valori restituiti dall'errore, vedereerrno
, _doserrno
_sys_errlist
, e _sys_nerr
.
Osservazioni:
Poiché C++ consente l'overload, è possibile chiamare overload di ldexp
che accettino tipi float
e long double
. In un programma C, a meno che non si usi la <macro tgmath.h> per chiamare questa funzione, ldexp
accetta sempre e double
un int
e restituisce un oggetto double
.
Se si utilizza la <macro tgmath.h>ldexp()
, il tipo dell'argomento determina quale versione della funzione è selezionata. Per informazioni dettagliate, vedere La matematica generica dei tipi.
Per impostazione predefinita, lo stato globale di questa funzione è limitato all'applicazione. Per modificare questo comportamento, vedere Stato globale in CRT.
Requisiti
Ciclo | Intestazione C | Intestazione C++ |
---|---|---|
ldexp , ldexpf , ldexpl |
<math.h> | <cmath> |
ldexp macro |
<tgmath.h> |
Per informazioni sulla compatibilità, vedere Compatibilità.
Esempio
// 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 );
}
Output
4.0 times two to the power of 3 is 32.0
Vedi anche
Supporto matematico e a virgola mobile
frexp
modf
, modff
, modfl