Namespaces
Variants

exp2, exp2f, exp2l

From cppreference.net
< c ‎ | numeric ‎ | math
Common mathematical functions
Functions
Basic operations
(C99)
(C99)
(C99)
(C99) (C99) (C99) (C23)
Maximum/minimum operations
Exponential functions
(C23)
exp2
(C99)
(C99)
(C23)
(C23)

Power functions
Trigonometric and hyperbolic functions
Nearest integer floating-point
(C99) (C99) (C99)
(C23) (C23) (C23) (C23)
Floating-point manipulation
Narrowing operations
(C23)
(C23)
(C23)
(C23)
(C23)
(C23)
Quantum and quantum exponent
Decimal re-encoding functions
Total order and payload functions
Classification
Error and gamma functions
(C99)
(C99)
(C99)
(C99)
Types
Macro constants
Special floating-point values
Arguments and return values
Error handling
Fast operation indicators
Défini dans l'en-tête <math.h>
float exp2f ( float n ) ;
(1) (depuis C99)
double exp2 ( double n ) ;
(2) (depuis C99)
long double exp2l ( long double n ) ;
(3) (depuis C99)
Défini dans l'en-tête <tgmath.h>
#define exp2( n )
(4) (depuis C99)
1-3) Calcule 2 élevé à la puissance donnée n .
4) Macro générique de type : Si n a le type long double , exp2l est appelé. Sinon, si n a un type entier ou le type double , exp2 est appelé. Sinon, exp2f est appelé.

Table des matières

Paramètres

n - valeur en virgule flottante

Valeur de retour

Si aucune erreur ne se produit, l'exponentielle de base 2 de n ( 2 n
) est renvoyée.

Si une erreur de plage due à un dépassement de capacité se produit, +HUGE_VAL , +HUGE_VALF , ou +HUGE_VALL est renvoyé.

Si une erreur de plage se produit en raison d'un dépassement inférieur, le résultat correct (après arrondi) est retourné.

Gestion des erreurs

Les erreurs sont signalées comme spécifié dans math_errhandling .

Si l'implémentation prend en charge l'arithmétique à virgule flottante IEEE (IEC 60559),

  • Si l'argument est ±0, 1 est retourné
  • Si l'argument est -∞, +0 est retourné
  • Si l'argument est +∞, +∞ est retourné
  • Si l'argument est NaN, NaN est retourné

Exemple

#include <errno.h>
#include <fenv.h>
#include <float.h>
#include <math.h>
#include <stdio.h>
// #pragma STDC FENV_ACCESS ON
int main(void)
{
    printf("exp2(5) = %f\n", exp2(5));
    printf("exp2(0.5) = %f\n", exp2(0.5));
    printf("exp2(-4) = %f\n", exp2(-4));
    // valeurs spéciales
    printf("exp2(-0.9) = %f\n", exp2(-0.9));
    printf("exp2(-Inf) = %f\n", exp2(-INFINITY));
    // gestion des erreurs
    errno = 0; feclearexcept(FE_ALL_EXCEPT);
    printf("exp2(1024) = %f\n", exp2(1024));
    if (errno == ERANGE)
        perror("    errno == ERANGE");
    if (fetestexcept(FE_OVERFLOW))
        puts("    FE_OVERFLOW raised");
}

Sortie possible :

exp2(5) = 32.000000
exp2(0.5) = 1.414214
exp2(-4) = 0.062500
exp2(-0.9) = 0.535887
exp2(-Inf) = 0.000000
exp2(1024) = Inf
    errno == ERANGE: Résultat trop grand
    FE_OVERFLOW levée

Références

  • Norme C23 (ISO/CEI 9899:2024) :
  • 7.12.6.2 Les fonctions exp2 (p: TBD)
  • 7.25 Mathématiques génériques de type <tgmath.h> (p: TBD)
  • F.10.3.2 Les fonctions exp2 (p: TBD)
  • Norme C17 (ISO/CEI 9899:2018) :
  • 7.12.6.2 Les fonctions exp2 (p: 177)
  • 7.25 Mathématiques génériques <tgmath.h> (p: 272-273)
  • F.10.3.2 Les fonctions exp2 (p: 379)
  • Norme C11 (ISO/IEC 9899:2011) :
  • 7.12.6.2 Les fonctions exp2 (p: 242-243)
  • 7.25 Mathématiques génériques de type <tgmath.h> (p: 373-375)
  • F.10.3.2 Les fonctions exp2 (p: 521)
  • Norme C99 (ISO/CEI 9899:1999) :
  • 7.12.6.2 Les fonctions exp2 (p: 223)
  • 7.22 Mathématiques génériques de type <tgmath.h> (p: 335-337)
  • F.9.3.2 Les fonctions exp2 (p: 458)

Voir aussi

(C99) (C99)
calcule e élevé à la puissance donnée ( e x )
(fonction)
(C99) (C99) (C99)
calcule e élevé à la puissance donnée, moins un ( e x -1 )
(fonction)
(C99) (C99) (C99)
calcule le logarithme en base 2 ( log 2 (x) )
(fonction)