ilogb
, ilogbf
, ilogbl
Recupera um inteiro que representa o expoente de base 2 neutro do valor especificado.
Sintaxe
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
Parâmetros
x
O valor especificado.
Valor retornado
Se forem bem-sucedidas, essas funções retornarão o expoente de base 2 de x
como um signed int
valor.
Caso contrário, as funções retornarão um dos seguintes valores, definidos em <math.h>:
Entrada | Resultado |
---|---|
±0 | FP_ILOGB0 |
± INF, ± NAN, IND | FP_ILOGBNAN |
Os erros são relatados conforme especificado em _matherr
.
Comentários
Como C++ permite sobrecargas, é possível chamar sobrecargas de ilogb
que usam e retornam tipos float
e long double
. Em um programa C, a menos que esteja usando a macro <tgmath.h> para chamar essa função, ilogb
sempre recebe e retorna um double
.
Se você usa a macro <tgmath.h>ilogb()
, o tipo do argumento determina qual versão da função será selecionada. Confira Matemática do tipo genérico para obter detalhes.
Chamar essa função é semelhante a chamar a função logb
equivalente, convertendo, em seguida, o valor retornado para int
.
Requisitos
Rotina | Cabeçalho C | Cabeçalho C++ |
---|---|---|
ilogb , ilogbf , ilogbl |
<math.h> | <cmath> |
Macro ilogb |
<tgmath.h> |
Para obter informações sobre compatibilidade, consulte Compatibilidade.
Confira também
Referência alfabética de função
frexp
logb
, logbf
, logbl
, _logb
, _logbf