Namensräume
Varianten
Aktionen

log2, log2f, log2l

Von cppreference.com
< c‎ | numerik‎ | math
 
 
 
Allgemeine mathematische Funktionen
Funktionen
Grundlegende Operationen
(C99)
(C99)
(C99)
(C99)(C99)(C99)(C23)
Maximum/Minimum-Operationen
(C99)
(C99)
Exponentialfunktionen
(C23)
(C99)
(C99)
(C23)
(C23)

log2
(C99)
(C99)(C23)
(C23)
(C23)
Potenzfunktionen
(C99)
(C23)
(C23)

(C99)
(C23)
(C23)
Trigonometrische und hyperbolische Funktionen
(C23)
(C23)
(C23)
(C23)
(C99)
(C99)
(C99)
Nächste ganze Gleitkommazahlen
(C99)(C99)(C99)
(C99)

(C99)(C99)(C99)
(C23)(C23)(C23)(C23)
Gleitkomma-Manipulation
(C99)(C99)
(C99)(C23)
(C99)
Verengende Operationen
(C23)
(C23)
(C23)
(C23)
(C23)
(C23)
Quanten- und Quantenexponent-Funktionen
Dezimal-Neu-Kodierungsfunktionen
Gesamtordnung und Payload-Funktionen
Klassifizierung
(C99)
(C99)
(C99)
(C23)
Fehler- und Gammafunktionen
(C99)
(C99)
(C99)
(C99)
Typen
Makrokonstanten
Spezielle Gleitkommawerte
(C99)(C23)
Argumente und Rückgabewerte
Fehlerbehandlung
Schnelle Operationsanzeigen
 
Definiert in 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 in Header <tgmath.h>
#define log2( arg )
(4) (seit C99)
1-3) Berechnet den Logarithmus zur Basis 2 von arg.
4) Typgenerische Makrodefinition: Wenn 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.

Inhalt

[Bearbeiten] Parameter

arg - Gleitkommazahlwert

[Bearbeiten] Rückgabewert

Wenn keine Fehler auftreten, wird der Basis-2-Logarithmus von arg (log2(arg) oder lb(arg)) zurückgegeben.

Wenn ein Domänenfehler auftritt, wird ein implementierungsabhängiger Wert zurückgegeben (NaN, wo unterstützt).

Wenn ein Polfehler auftritt, wird -HUGE_VAL, -HUGE_VALF oder -HUGE_VALL zurückgegeben.

[Bearbeiten] Fehlerbehandlung

Fehler werden wie in math_errhandling angegeben gemeldet.

Ein Definitionsbereichsfehler tritt auf, wenn arg kleiner als Null ist.

Ein Polfehler kann auftreten, wenn arg Null ist.

Wenn die Implementierung IEEE-Gleitkomma-Arithmetik (IEC 60559) unterstützt,

  • Wenn das Argument ±0 ist, wird -∞ zurückgegeben und FE_DIVBYZERO ausgelöst.
  • Wenn das Argument 1 ist, wird +0 zurückgegeben.
  • Wenn das Argument negativ ist, wird NaN zurückgegeben und FE_INVALID ausgelöst.
  • Wenn das Argument +∞ ist, wird +∞ zurückgegeben.
  • Wenn das Argument NaN ist, wird NaN zurückgegeben.

[Bearbeiten] Hinweise

Für ganzzahlige arg kann der binäre Logarithmus als der nullbasierte Index des höchstwertigen gesetzten Bits in der Eingabe interpretiert werden.

[Bearbeiten] 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

[Bearbeiten] Referenzen

  • C17-Standard (ISO/IEC 9899:2018)
  • 7.12.6.10 Die log2-Funktionen (S. 179)
  • 7.25 Typ-generische 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 Typ-generische 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 Typ-generische Mathematik <tgmath.h> (S. 335-337)
  • F.9.3.10 Die log2-Funktionen (S. 459)

[Bearbeiten] Siehe auch

(C99)(C99)
berechnet den natürlichen (Basis-e) Logarithmus (ln(x))
(Funktion) [bearbeiten]
berechnet den gemeinsamen (Basis-10) Logarithmus (log10(x))
(Funktion) [bearbeiten]
(C99)(C99)(C99)
berechnet den natürlichen (Basis-e) Logarithmus von 1 plus die gegebene Zahl (ln(1+x))
(Funktion) [bearbeiten]
(C99)(C99)(C99)
berechnet 2 hoch die gegebene Potenz (2x)
(Funktion) [bearbeiten]