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 |