Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
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 later
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