Namespaces
Variants

std:: exp2, std:: exp2f, std:: exp2l

From cppreference.net
Common mathematical functions
Nearest integer floating point operations
(C++11)
(C++11)
(C++11) (C++11) (C++11)
Floating point manipulation functions
(C++11) (C++11)
(C++11)
(C++11)
Classification and comparison
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
Types
(C++11)
(C++11)
(C++11)
Macro constants
Definiert in Header <cmath>
(1)
float exp2 ( float num ) ;

double exp2 ( double num ) ;

long double exp2 ( long double num ) ;
(bis C++23)
/*floating-point-type*/
exp2 ( /*floating-point-type*/ num ) ;
(seit C++23)
(constexpr seit C++26)
float exp2f ( float num ) ;
(2) (seit C++11)
(constexpr seit C++26)
long double exp2l ( long double num ) ;
(3) (seit C++11)
(constexpr seit C++26)
SIMD-Überladung (seit C++26)
Definiert in Header <simd>
template < /*math-floating-point*/ V >

constexpr /*deduced-simd-t*/ < V >

exp2 ( const V & v_num ) ;
(S) (seit C++26)
Definiert in Header <cmath>
template < class Integer >
double exp2 ( Integer num ) ;
(A) (constexpr seit C++26)
1-3) Berechnet 2 hoch der gegebenen Potenz num . Die Bibliothek stellt Überladungen von std::exp2 für alle cv-unqualifizierten Gleitkommatypen als Typ des Parameters bereit. (since C++23)
S) Die SIMD-Überladung führt eine elementweise std::exp2 -Operation auf v_num aus.
(Siehe math-floating-point und deduced-simd-t für deren Definitionen.)
(since C++26)
A) Zusätzliche Überladungen werden für alle Ganzzahltypen bereitgestellt, die als double behandelt werden.
(since C++11)

Inhaltsverzeichnis

Parameter

num - Gleitkomma- oder Ganzzahlwert

Rückgabewert

Wenn keine Fehler auftreten, wird die Basis- 2 -Exponentialfunktion von num ( 2 num
) zurückgegeben.

Wenn ein Bereichsfehler aufgrund von Überlauf auftritt, +HUGE_VAL , +HUGE_VALF , oder +HUGE_VALL wird zurückgegeben.

Wenn ein Bereichsfehler aufgrund von Unterlauf auftritt, wird das korrekte Ergebnis (nach Rundung) zurückgegeben.

Fehlerbehandlung

Fehler werden gemeldet, wie in math_errhandling spezifiziert.

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

  • Wenn das Argument ±0 ist, wird 1 zurückgegeben.
  • Wenn das Argument -∞ ist, wird +0 zurückgegeben.
  • Wenn das Argument +∞ ist, wird +∞ zurückgegeben.
  • Wenn das Argument NaN ist, wird NaN zurückgegeben.

Hinweise

Die zusätzlichen Überladungen müssen nicht exakt wie (A) bereitgestellt werden. Sie müssen lediglich sicherstellen, dass für ihr Argument num vom Ganzzahltyp std :: exp2 ( num ) dieselbe Wirkung hat wie std :: exp2 ( static_cast < double > ( num ) ) .

Für ganzzahlige Exponenten kann es vorzuziehen sein, std::ldexp zu verwenden.

Beispiel

#include <cerrno>
#include <cfenv>
#include <cmath>
#include <cstring>
#include <iostream>
// #pragma STDC FENV_ACCESS ON
int main()
{
    std::cout << "exp2(4) = " << std::exp2(4) << '\n'
              << "exp2(0.5) = " << std::exp2(0.5) << '\n'
              << "exp2(-4) = " << std::exp2(-4) << '\n';
    // special values
    std::cout << "exp2(-0) = " << std::exp2(-0.0) << '\n'
              << "exp2(-Inf) = " << std::exp2(-INFINITY) << '\n';
    // error handling
    errno = 0;
    std::feclearexcept(FE_ALL_EXCEPT);
    const double inf = std::exp2(1024);
    const bool is_range_error = errno == ERANGE;
    std::cout << "exp2(1024) = " << inf << '\n';
    if (is_range_error)
        std::cout << "    errno == ERANGE: " << std::strerror(ERANGE) << '\n';
    if (std::fetestexcept(FE_OVERFLOW))
        std::cout << "    FE_OVERFLOW raised\n";
}

Mögliche Ausgabe:

exp2(4) = 16
exp2(0.5) = 1.41421
exp2(-4) = 0.0625
exp2(-0) = 1
exp2(-Inf) = 0
exp2(1024) = inf
    errno == ERANGE: Numerical result out of range
    FE_OVERFLOW raised

Siehe auch

(C++11) (C++11)
gibt e hoch der gegebenen Potenz zurück ( e x )
(Funktion)
(C++11) (C++11) (C++11)
gibt e hoch der gegebenen Potenz minus 1 zurück ( e x -1 )
(Funktion)
(C++11) (C++11)
multipliziert eine Zahl mit 2 hoch einer ganzzahligen Potenz
(Funktion)
(C++11) (C++11) (C++11)
Basis- 2 Logarithmus der gegebenen Zahl ( log 2 (x) )
(Funktion)