ilogb

Returns the exponent of a floating-point number as an integer

```#include <math.h>
int ilogb ( double x  )
int ilogbf ( float x  )
int ilogbl ( long double x  )
```

The ilogb( ) functions return the exponent of their floating-point argument as a signed integer. If the argument is not normalized, ilogb( ) returns the exponent of its normalized value.

If the argument is 0, ilogb( ) returns the value of the macro FP_ILOGB0 (defined in math.h), and may incur a range error. If the argument is infinite, the return value is equal to INT_MAX. If the floating-point argument is NaN ("not a number"), ilogb( ) returns the value of the macro FP_ILOGBNAN.

#### Example

```int exponent = 0;
double x = -1.509812734e200;

while ( exponent < INT_MAX )
{
exponent = ilogb( x );
printf( "The exponent of %g is %d.\n", x, exponent );

if ( x < 0.0 && x * x > 1.0 )
x /= 1e34;
else
x += 1.1, x *= 2.2e34 ;
}
```

This code produces some 15 output lines, including these samples:

```The exponent of -1.50981e+200 is 664.
The exponent of -1.50981e+30 is 100.
The exponent of -0.000150981 is -13.
The exponent of 2.41967e+34 is 114.
The exponent of inf is 2147483647.
```

`logb( ), log( ), log10( ), log1p( ), exp( ), pow( ).`