log
, , logf
logl
, log10
, , log10f
log10l
Berechnet die Logarithmen.
Syntax
double log(double x);
float logf(float x);
long double logl(double x);
double log10(double x);
float log10f (float x);
long double log10l(double x);
#define log(X) // Requires C11 or higher
#define log10(X) // Requires C11 or higher
float log(float x); // C++ only
long double log(long double x); // C++ only
float log10(float x); // C++ only
long double log10(long double x); // C++ only
Parameter
x
Ein Wert, dessen Logarithmus gesucht wird.
Rückgabewert
Die log
Funktionen geben bei erfolgreicher Ausführung den natürlichen Logarithmus (Basis e
) x
zurück. Die log10
Funktionen geben den Logarithmus base-10 zurück. Wenn x
dies negativ ist, geben diese Funktionen standardmäßig eine unbestimmte () ZurückIND
. Wenn x
0 ist, kehren sie unendlich (INF
).
Eingabe | SEH-Ausnahme | _matherr -Ausnahme |
---|---|---|
± QNaN, IND | none | _DOMAIN |
± 0 | ZERODIVIDE |
_SING |
x < 0 |
INVALID |
_DOMAIN |
log
und log10
verfügen über eine Implementierung, die Streaming SIMD Extensions 2 (SSE2) verwendet. Informationen und Einschränkungen bei der Verwendung der SSE2-Implementierung finden Sie _set_SSE2_enable
unter .
Hinweise
C++ ermöglicht die Überladung, sodass Sie Überladungen aufrufen und log10
diese log
annehmen und zurückgeben oder long double
Werte zurückgeben float
können. In einem C-Programm, es sei denn, Sie verwenden das <tgmath.h>
Makro, um diese Funktion aufzurufen, log
und log10
nehmen und geben Sie immer ein double
.
Wenn Sie das <tgmath.h> log()
Makro verwenden, bestimmt der Typ des Arguments, welche Version der Funktion ausgewählt ist. Ausführliche Informationen finden Sie unter Typgengenerische Mathematik.
Standardmäßig gilt der globale Zustand dieser Funktion für die Anwendung. Wie Sie dieses Verhalten ändern, erfahren Sie unter Globaler Status in der CRT.
Anforderungen
Routine | Erforderlicher Header |
---|---|
log , , logf logl , log10 , , log10f log10l |
<math.h> |
log -Makro |
<tgmath.h> |
Weitere Informationen zur Kompatibilität finden Sie unter Kompatibilität.
Beispiel
// 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
Verwenden Sie zum Generieren von Logarithmen für anderen Basen die mathematische Beziehung: Logarithmische Basis b von a = Natürlicher Logarithmus (a) / Natürlicher Logarithmus (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
Siehe auch
Mathematische Unterstützung und Gleitkommaunterstützung
exp
, expf
expl
_matherr
pow
, powf
powl
_CIlog
_CIlog10
\