A função ilogb () em C ++ retorna a parte integral do logaritmo de | x |, usando FLT_RADIX como base para o logaritmo.
Isso é definido no arquivo de cabeçalho.
Matematicamente,
x = significando * FLT_RADIXexponente
significand é um valor de ponto flutuante no intervalo (1.0, 2.0), x é o argumento passado para ilogb () e expoente é o valor inteiro retornado por ilogb (). O valor de FLT_RADIX geralmente é 2.
O valor retornado por ilogb () é um a menos que o expoente gerado pela função frexp (), uma vez que o significando está no intervalo (1,0, 2,0) em vez de (0,5, 1,0) como em frexp ().
protótipo ilogb () (a partir do padrão C ++ 11)
int ilogb (duplo x); int ilogb (float x); int ilogb (longo duplo x); int ilogb (T x); // Para tipo integral
Parâmetros ilogb ()
A função ilogb () recebe um único argumento cujo ilogb é calculado.
ilogb () Valor de retorno
A função ilogb () retorna a parte integral do logaritmo de | x |, usando FLT_RADIX como base para o logaritmo.
- Se o argumento for 0, ele retornará FP_LOGB0.
- Se o argumento for NaN, ele retornará FP_LOGBNAN.
- Se o argumento for infinito, ele retornará INT_MAX.
Exemplo 1: Como a função ilogb () funciona em C ++?
#include #include #include using namespace std; int main() ( int result; double significand; double x = 16.81; result = ilogb(x); significand = x / pow(FLT_RADIX, result); cout << "ilogb (" << x << ") = " << result << endl; cout << x << " = " << significand << " * " << FLT_RADIX << "^" << result << endl << endl; return 0; )
Quando você executa o programa, a saída será:
ilogb (16,81) = 4 16,81 = 1,05062 * 2 4
Exemplo 2: função ilogb () com tipo integral
#include #include #include using namespace std; int main() ( int result, x = 19; result = ilogb(x); double significand = x/pow(FLT_RADIX,result); cout << "ilogb (" << x << ") = " << result << endl; cout << x << " = " << significand << " * " << FLT_RADIX << "^" << result << endl << endl; return 0; )
Quando você executa o programa, a saída será:
ilogb (19) = 4 19 = 1,1875 * 2 4