log2, log2f, log2l

Determines the binary (base-2) logarithm of the specified value.


double log2(
   double x

float log2(
   float x
); //C++ only

long double log2(
   long double x
); //C++ only

float log2f(
   float x

long double log2l(
   long double x

#define log2(X) // Requires C11 or higher


The value to determine the base-2 logarithm of.

Return value

On success, the functions return the base-2 log of x.

Otherwise, the functions may return one of the following values:

Issue Return
x < 0 NaN
x = ±0 -INFINITY
x = 1 +0
domain error NaN
pole error -HUGE_VAL, -HUGE_VALF, or -HUGE_VALL

Errors are reported as specified in _matherr.


If x is an integer, this function essentially returns the zero-based index of the most significant 1 bit of x.

By default, this function's global state is scoped to the application. To change this behavior, see Global state in the CRT.


Function C header C++ header
log2, log2f, log2l <math.h> <cmath>
log2 macro <tgmath.h>

For more compatibility information, see Compatibility.

See also

Alphabetical function reference
exp2, exp2f, exp2l
log, logf, log10, log10f