Condividi tramite


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