ilogb
, ilogbf
, ilogbl
Restituisce un valore intero che rappresenta l'esponente in base 2 non distorto del valore specificato.
Sintassi
int ilogb(
double x
);
int ilogb(
float x
); //C++ only
int ilogb(
long double x
); //C++ only
int ilogbf(
float x
);
int ilogbl(
long double x
);
#define ilogbl(X) // Requires C11 or higher
Parametri
x
Valore specificato.
Valore restituito
In caso di esito positivo, queste funzioni restituiscono l'esponente di base 2 di x
come signed int
valore.
In caso contrario, le funzioni restituiscono uno dei valori seguenti, definiti in <math.h>:
Input | Risultato |
---|---|
±0 | FP_ILOGB0 |
± INF, ± NAN, IND | FP_ILOGBNAN |
Gli errori vengono segnalati come specificato in _matherr
.
Osservazioni:
Poiché C++ consente l'overload, è possibile chiamare gli overload di ilogb
che accettano e restituiscono i tipi float
e long double
. In un programma C, a meno che non si usi la <macro tgmath.h> per chiamare questa funzione, ilogb
accetta sempre e restituisce un oggetto double
.
Se si utilizza la <macro tgmath.h>ilogb()
, il tipo dell'argomento determina quale versione della funzione è selezionata. Per informazioni dettagliate, vedere La matematica generica dei tipi.
Chiamare questa funzione è simile alla chiamata della funzione logb
equivalente con successivo cast del valore restituito in int
.
Requisiti
Ciclo | Intestazione C | Intestazione C++ |
---|---|---|
ilogb , ilogbf , ilogbl |
<math.h> | <cmath> |
ilogb macro |
<tgmath.h> |
Per altre informazioni sulla compatibilità, vedere Compatibility (Compatibilità).
Vedi anche
Informazioni di riferimento sulle funzioni alfabetiche
frexp
logb
, logbf
, logbl
, _logb
_logbf