ilogb
Defined in header <math.h>


int ilogbf( float arg ); 
(since C99)  
int ilogb( double arg ); 
(since C99)  
int ilogbl( long double arg ); 
(since C99)  
#define FP_ILOGB0 /*implementationdefined*/ 
(since C99)  
#define FP_ILOGBNAN /*implementationdefined*/ 
(since C99)  
Extracts the value of the exponent from the floatingpoint argument arg
, and returns it as a signed integer value. Formally, the result is the integral part of log
rarg as a signed integral value, for nonzero arg, where r
is FLT_RADIX.
Contents 
Parameters
arg    floating point value 
Return value
The floatingpoint exponent, cast to integer.
Domain or range error may occur if arg
is zero, FP_ILOGB0 is returned in that case.
Domain or range error may occur if arg
is infinite, INT_MAX is returned in that case.
Domain or range error may occur if arg
is NaN, FP_ILOGBNAN is returned in that case.
If the result cannot be represented as int, the result is undefined.
Notes
The value of the exponent returned by ilogb is always 1 less than the exponent retuned by frexp because of the different normalization requirements: for the exponent e
returned by ilogb, arg*re
 is between 1 and r
(typically between 1 and 2), but for the exponent e
returned by frexp, arg*2e
 is between 0.5 and 1.
Example
This section is incomplete Reason: no example 
See also
(C99)(C99) 
breaks a number into significand and a power of 2 (function) 
(C99)(C99)(C99) 
extracts exponent of the given number (function) 
(C99)(C99)(C99)(C99)(C99)(C99) 
computes efficiently a number times FLT_RADIX raised to a power (function) 
C++ documentation for ilogb
