Compartilhar 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.

Retornar valor

Se bem-sucedidas, essas funções retornam 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 no _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 você esteja usando a <macro tgmath.h> para chamar essa função, ilogb sempre usa e retorna um doublearquivo .

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 <matemática.h> <cmath>
Macro ilogb <tgmath.h>

Para obter informações sobre compatibilidade, consulte Compatibilidade.

Confira também

Referência de função alfabética
frexp
logb, logbf, logbl, _logb, _logbf