ldexp
Moltiplica un numero a virgola mobile per una potenza integrale di due.
double ldexp( double x, int exp ); float ldexp( float x, int exp ); // C++ only long double ldexp( long double x, int exp ); // C++ only float ldexpf( float x, int exp ); long double ldexpl( long double x, int exp );
Parametri
x
Valore a virgola mobile.exp
Esponente dell'intero.
Valore restituito
Se eseguita correttamente, la funzione ldexp restituisce il valore di x * 2exp. In condizione di overflow e in base al segno di x, ldexp restituisce +/– HUGE_VAL; il valore errno viene impostato su ERANGE.
Per altre informazioni su errno e i possibili valori di errore restituiti, vedere errno, _doserrno, _sys_errlist, and _sys_nerr.
Note
Poiché C++ consente l'overload, è possibile chiamare overload di ldexp che accettino tipi float e long double. In un programma C, ldexp accetta sempre un double e un int e restituisce un double.
Requisiti
Routine |
Intestazione C |
Intestazione C++ |
---|---|---|
ldexp, ldexpf, ldexpl |
<math.h> |
<cmath> |
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