ilogb


ilogb

Returns the exponent of a floating-point number as an integer

 #include <math.h> int ilogb ( double x  ) int ilogbf ( float x  ) int ilogbl ( long double x  ) 

The ilogb( ) functions return the exponent of their floating-point argument as a signed integer. If the argument is not normalized, ilogb( ) returns the exponent of its normalized value.

If the argument is 0, ilogb( ) returns the value of the macro FP_ILOGB0 (defined in math.h), and may incur a range error. If the argument is infinite, the return value is equal to INT_MAX. If the floating-point argument is NaN ("not a number"), ilogb( ) returns the value of the macro FP_ILOGBNAN.

Example

 int exponent = 0; double x = -1.509812734e200; while ( exponent < INT_MAX ) {   exponent = ilogb( x );   printf( "The exponent of %g is %d.\n", x, exponent );   if ( x < 0.0 && x * x > 1.0 )     x /= 1e34;   else     x += 1.1, x *= 2.2e34 ; } 

This code produces some 15 output lines, including these samples:

 The exponent of -1.50981e+200 is 664. The exponent of -1.50981e+30 is 100. The exponent of -0.000150981 is -13. The exponent of 2.41967e+34 is 114. The exponent of inf is 2147483647. 

See Also

 logb( ), log( ), log10( ), log1p( ), exp( ), pow( ).



C(c) In a Nutshell
C in a Nutshell (In a Nutshell (OReilly))
ISBN: 0596006977
EAN: 2147483647
Year: 2006
Pages: 473

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net