Calculates the logarithm to base 2 of a number #include <math.h> double log2 ( double x ); float log2f ( float x ); (C99) long double log2l ( long double x ); (C99) The base-2 logarithm of a number x is defined only for positive values of x. If x is negative, a domain error occurs; if x is zero, and depending on the implementation, a range error may occur. Exampledouble x[ ] = { 0, 0.7, 1.8, 1234, INFINITY }; for ( int i = 0; i < sizeof( x ) / sizeof( double ); i++ ) { errno = 0; printf( "The base 2 log of %.1f is %.3f.\n", x[i], log2( x[i] ) ); if ( errno == EDOM || errno == ERANGE ) perror( _ _FILE_ _ ); } This code produces the following output: The base 2 log of 0.0 is -inf. log2.c: Numerical result out of range The base 2 log of 0.7 is -0.515. The base 2 log of 1.8 is 0.848. The base 2 log of 1234.0 is 10.269. The base 2 log of inf is inf. See Alsolog( ), log10( ), log1p( ), exp( ), pow( ) |