log2, log2f, log2l
|
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Definiert im Header
<math.h>
|
||
|
float
log2f
(
float
arg
)
;
|
(1) | (seit C99) |
|
double
log2
(
double
arg
)
;
|
(2) | (seit C99) |
|
long
double
log2l
(
long
double
arg
)
;
|
(3) | (seit C99) |
|
Definiert im Header
<tgmath.h>
|
||
|
#define log2( arg )
|
(4) | (seit C99) |
arg
den Typ
long
double
hat, wird
log2l
aufgerufen. Andernfalls, wenn
arg
einen ganzzahligen Typ oder den Typ
double
hat, wird
log2
aufgerufen. Andernfalls wird
log2f
aufgerufen.
Inhaltsverzeichnis |
Parameter
| arg | - | Gleitkommawert |
Rückgabewert
Wenn keine Fehler auftreten, wird der Basis-
2
-Logarithmus von
arg
(
log
2
(arg)
oder
lb(arg)
) zurückgegeben.
Wenn ein Domänenfehler auftritt, wird ein implementierungsdefinierter Wert zurückgegeben (NaN, sofern unterstützt).
Wenn ein Polfehler auftritt,
-HUGE_VAL
,
-HUGE_VALF
, oder
-HUGE_VALL
wird zurückgegeben.
Fehlerbehandlung
Fehler werden gemeldet, wie in
math_errhandling
festgelegt.
Ein Domänenfehler tritt auf, wenn
arg
kleiner als null ist.
Polfehler kann auftreten, wenn
arg
null ist.
Wenn die Implementierung IEEE-Gleitkommaarithmetik (IEC 60559) unterstützt,
- Wenn das Argument ±0 ist, wird -∞ zurückgegeben und FE_DIVBYZERO wird ausgelöst.
- Wenn das Argument 1 ist, wird +0 zurückgegeben
- Wenn das Argument negativ ist, wird NaN zurückgegeben und FE_INVALID wird ausgelöst.
- Wenn das Argument +∞ ist, wird +∞ zurückgegeben
- Wenn das Argument NaN ist, wird NaN zurückgegeben
Hinweise
Für ganzzahlige
arg
kann der binäre Logarithmus als der nullbasierte Index des höchstwertigen 1-Bits in der Eingabe interpretiert werden.
Beispiel
#include <stdio.h> #include <math.h> #include <float.h> #include <errno.h> #include <fenv.h> // #pragma STDC FENV_ACCESS ON int main(void) { printf("log2(65536) = %f\n", log2(65536)); printf("log2(0.125) = %f\n", log2(0.125)); printf("log2(0x020f) = %f (highest set bit is in position 9)\n", log2(0x020f)); printf("base-5 logarithm of 125 = %f\n", log2(125)/log2(5)); // special values printf("log2(1) = %f\n", log2(1)); printf("log2(+Inf) = %f\n", log2(INFINITY)); //error handling errno = 0; feclearexcept(FE_ALL_EXCEPT); printf("log2(0) = %f\n", log2(0)); if(errno == ERANGE) perror(" errno == ERANGE"); if(fetestexcept(FE_DIVBYZERO)) puts(" FE_DIVBYZERO raised"); }
Mögliche Ausgabe:
log2(65536) = 16.000000
log2(0.125) = -3.000000
log2(0x020f) = 9.041659 (highest set bit is in position 9)
base-5 logarithm of 125 = 3.000000
log2(1) = 0.000000
log2(+Inf) = inf
log2(0) = -inf
errno == ERANGE: Numerical result out of range
FE_DIVBYZERO raised
Referenzen
- C17-Standard (ISO/IEC 9899:2018):
-
- 7.12.6.10 Die log2-Funktionen (S. 179)
-
- 7.25 Typgenerische Mathematik <tgmath.h> (S. 272-273)
-
- F.10.3.10 Die log2-Funktionen (S. 381)
- C11-Standard (ISO/IEC 9899:2011):
-
- 7.12.6.10 Die log2-Funktionen (S. 246)
-
- 7.25 Typgenerische Mathematik <tgmath.h> (S. 373-375)
-
- F.10.3.10 Die log2-Funktionen (S. 522)
- C99-Standard (ISO/IEC 9899:1999):
-
- 7.12.6.10 Die log2-Funktionen (S. 226)
-
- 7.22 Typgenerische Mathematik <tgmath.h> (S. 335-337)
-
- F.9.3.10 Die log2-Funktionen (S. 459)
Siehe auch
|
(C99)
(C99)
|
berechnet den natürlichen Logarithmus (Basis-
e
) (
\({\small \ln{x} }\)
ln(x)
)
(Funktion) |
|
(C99)
(C99)
|
berechnet den dekadischen Logarithmus (Basis-
10
) (
\({\small \log_{10}{x} }\)
log
10
(x)
)
(Funktion) |
|
(C99)
(C99)
(C99)
|
berechnet den natürlichen Logarithmus (Basis-
e
) von 1 plus der gegebenen Zahl (
\({\small \ln{(1+x)} }\)
ln(1+x)
)
(Funktion) |
|
(C99)
(C99)
(C99)
|
berechnet
2
hoch der gegebenen Potenz (
\({\small 2^x}\)
2
x
)
(Funktion) |
|
C++-Dokumentation
für
log2
|
|