log, logf, log10, log10f

 

Para obtener la documentación más reciente de Visual Studio 2017 RC, consulte Documentación de Visual Studio 2017 RC.

Calcula logaritmos.

  
      double log(  
   double x   
);  
float log(  
   float x  
);  // C++ only  
long double log(  
   long double x  
);  // C++ only  
float logf(  
   float x   
);  
double log10(  
   double x  
);  
float log10(  
   float x  
);  // C++ only  
long double log10(  
   long double x  
);  // C++ only  
float log10f (  
   float x  
);  

Parámetros

x
Valor cuyo logaritmo se va a calcular.

El registro funciones devuelven el logaritmo natural (base e) de x si se realiza correctamente. Las funciones log10 devuelven el logaritmo en base 10. Si x es negativo, estas funciones devuelven un indefinido, de forma predeterminada. Si x es 0, que devuelven INF (infinito).

EntradaExcepción SEHExcepción de Matherr
± QNAN,INDninguna_DOMAIN
± 0ZERODIVIDE_SING
x< 0></ 0>INVALID_DOMAIN

Registro y log10 tiene una implementación que usa Extensiones SIMD de transmisión por secuencias 2 (SSE2). Consulte _set_SSE2_enable para obtener información y restricciones en el uso de la implementación de SSE2.

C++ permite las sobrecargas, puede llamar a las sobrecargas de registro y log10. En un programa de C, registro y log10 siempre toman y devuelven un valor double.

RutinaEncabezado necesario
log, logf, log10,log10f<math.h>

Para obtener información adicional de compatibilidad, vea Compatibilidad en la Introducción.

Todas las versiones de las bibliotecas en tiempo de ejecución de C.

// crt_log.c  
/* This program uses log and log10  
 * to calculate the natural logarithm and  
 * the base-10 logarithm of 9,000.  
 */  
  
#include <math.h>  
#include <stdio.h>  
  
int main( void )  
{  
   double x = 9000.0;  
   double y;  
  
   y = log( x );  
   printf( "log( %.2f ) = %f\n", x, y );  
   y = log10( x );  
   printf( "log10( %.2f ) = %f\n", x, y );  
}  

log( 9000.00 ) = 9.104980  
log10( 9000.00 ) = 3.954243  

Para generar los logaritmos de otras bases, use la relación matemática: registro base b de un == logaritmo natural (a) / natural log (b).

// logbase.cpp  
#include <math.h>  
#include <stdio.h>  
  
double logbase(double a, double base)  
{  
   return log(a) / log(base);  
}  
  
int main()  
{  
   double x = 65536;  
   double result;  
  
   result = logbase(x, 2);  
   printf("Log base 2 of %lf is %lf\n", x, result);  
}  

Log base 2 of 65536.000000 is 16.000000  

Compatibilidad de punto flotante
EXP, expf
_matherr
Pow, powf, powl
_CIlog
_CIlog10

Mostrar: