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 /*implementation-defined*/  | 
(since C99) | |
|   #define FP_ILOGBNAN /*implementation-defined*/  | 
(since C99) | |
Extracts the value of the exponent from the floating-point argument arg, and returns it as a signed integer value. Formally, the result is the integral part of log
r|arg| as a signed integral value, for non-zero arg, where r is FLT_RADIX.
Contents | 
[edit] Parameters
| arg | - | floating point value | 
[edit] Return value
The floating-point 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, MAX_INT 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.
[edit] 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*r-e
| is between 1 and r (typically between 1 and 2), but for the exponent e returned by frexp, |arg*2-e
| is between 0.5 and 1.
[edit] Example
| This section is incomplete Reason: no example  | 
[edit] See also
|   decomposes a number into significand and a power of 2   (function)  | |
|    (C99)  | 
   extracts exponent of the number   (function)  | 
|    (C99) (C99)  | 
   multiplies a number by FLT_RADIX raised to a power   (function)  | 
|   C++ documentation for ilogb 
 | |