exp2, exp2f, exp2l
Defined in header <math.h> |
||
|---|---|---|
float exp2f( float n ); |
(1) | (since C99) |
double exp2( double n ); |
(2) | (since C99) |
long double exp2l( long double n ); |
(3) | (since C99) |
Defined in header <tgmath.h> |
||
#define exp2( n ) |
(4) | (since C99) |
1-3) Вычисляет 2 в заданной степени
n.
4) Универсальное макрос: Если
n имеет тип long double, вызывается exp2l. В противном случае, если n имеет целочисленный тип или тип double, вызывается exp2. В противном случае вызывается exp2f.Параметры
| n | - | значение с плавающей точкой |
Возвращаемое значение
Если ошибок не произошло, возвращается значение экспоненты с основанием 2 от n (2n).
Если произошла ошибка переполнения, возвращается +HUGE_VAL, +HUGE_VALF, или +HUGE_VALL.
Если произошла ошибка подпотока, возвращается правильный результат (после округления).
Обработка ошибок
Ошибки сообщаются в соответствии со спецификациями в math_errhandling.
Если реализация поддерживает IEEE плавающую арифметику (IEC 60559),
- Если аргумент равен ±0, возвращается 1
- Если аргумент равен -∞, возвращается +0
- Если аргумент равен +∞, возвращается +∞
- Если аргумент равен NaN, возвращается NaN
Пример
#include <stdio.h>
#include <math.h>
#include <float.h>
#include <errno.h>
#include <fenv.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));
// special values
printf("exp2(-0.9) = %f\n", exp2(-0.9));
printf("exp2(-Inf) = %f\n", exp2(-INFINITY));
//error handling
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");
}Возможный вывод:
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: Result too large
FE_OVERFLOW raisedСсылки
- Стандарт C17 (ISO/IEC 9899:2018):
- 7.12.6.2 Функции exp2 (с. 177)
- 7.25 Универсальные математические функции <tgmath.h> (с. 272-273)
- F.10.3.2 Функции exp2 (с. 379)
- Стандарт C11 (ISO/IEC 9899:2011):
- 7.12.6.2 Функции exp2 (с. 242-243)
- 7.25 Универсальные математические функции <tgmath.h> (с. 373-375)
- F.10.3.2 Функции exp2 (с. 521)
- Стандарт C99 (ISO/IEC 9899:1999):
- 7.12.6.2 Функции exp2 (с. 223)
- 7.22 Универсальные математические функции <tgmath.h> (с. 335-337)
- F.9.3.2 Функции exp2 (с. 458)
См. также
|
(C99)(C99)
|
вычисляет e в заданной степени (\({\small e^x}\)) (функция) |
|
(C99)(C99)(C99)
|
вычисляет e в заданной степени минус один (\({\small e^x-1}\)) (функция) |
|
(C99)(C99)(C99)
|
вычисляет двоичный логарифм (\({\small \log_{2}{x} }\)) (функция) |
Документация C++ для exp2 |
|
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/c/numeric/math/exp2