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
|