Compute the integral part of a logarithm
#include <math.h> int ilogb ( double x ); int ilogbf (float x );
The ilogb() and ilogbf() functions compute the integral part of:
logr |x|
as a signed integral value, for nonzero finite x, where r is the radix of the machine's floating point arithmetic.
The exponent part of x, in integer format:
If x is: | ilogb() returns: |
---|---|
0 | -INT_MAX |
NAN | INT_MAX |
Negative infinity | INT_MAX |
Positive infinity | INT_MAX |
#include <stdio.h> #include <stdlib.h> #include <math.h> int main( void ) { printf( "%f\n", ilogb(.5) ); return EXIT_SUCCESS; }
Safety: | |
---|---|
Cancellation point | No |
Interrupt handler | No |
Signal handler | No |
Thread | Yes |