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 logr|arg| as a signed integral value, for non-zero arg, where r is FLT_RADIX.

Contents

Parameters

Return value

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.

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.