logb, logbf, logbl  get exponent of a floatingpoint value
#include <math.h>
double logb(double x);
float logbf(float x);
long double logbl(long double x);
Link with
lm.
Feature Test Macro Requirements for glibc (see
feature_test_macros(7)):
logb():
_ISOC99_SOURCE 
_POSIX_C_SOURCE >= 200112L
 _XOPEN_SOURCE >= 500
 /* Since glibc 2.19: */ _DEFAULT_SOURCE
 /* Glibc versions <= 2.19: */ _BSD_SOURCE  _SVID_SOURCE
logbf(),
logbl():
_ISOC99_SOURCE 
_POSIX_C_SOURCE >= 200112L
 /* Since glibc 2.19: */ _DEFAULT_SOURCE
 /* Glibc versions <= 2.19: */ _BSD_SOURCE  _SVID_SOURCE
These functions extract the exponent from the internal floatingpoint
representation of
x and return it as a floatingpoint value. The
integer constant
FLT_RADIX, defined in
<float.h>,
indicates the radix used for the system's floatingpoint representation. If
FLT_RADIX is 2,
logb(x) is equal to
floor(log2(x)), except that it is probably faster.
If
x is subnormal,
logb() returns the exponent
x would have
if it were normalized.
On success, these functions return the exponent of
x.
If
x is a NaN, a NaN is returned.
If
x is zero, then a pole error occurs, and the functions return

HUGE_VAL, 
HUGE_VALF, or 
HUGE_VALL, respectively.
If
x is negative infinity or positive infinity, then positive infinity is
returned.
See
math_error(7) for information on how to determine whether an error
has occurred when calling these functions.
The following errors can occur:
 Pole error: x is 0
 A dividebyzero floatingpoint exception (FE_DIVBYZERO) is
raised.
These functions do not set
errno.
For an explanation of the terms used in this section, see
attributes(7).
Interface 
Attribute 
Value 
logb (), logbf (), logbl () 
Thread safety 
MTSafe 
C99, POSIX.12001, POSIX.12008.
ilogb(3),
log(3)