Partilhar via


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