Skip to content
Related Articles

Related Articles

exp2() function in C++ STL
  • Difficulty Level : Easy
  • Last Updated : 18 Aug, 2018

The exp2() is a builtin function in C++ STL that computes the base-2 exponential function of a given number. It can also be written as 2num.

Syntax:

exp2(data_type num)

Parameter:The function accepts a single mandatory parameter num which specifies the value of the exponent. It can be positive, negative or 0. The parameter can be of type double, float or long double.

Return Value: It returns either a double, float or long double value which is equivalent to 2num.

Program 1:






// C++ program to illustrate the
// exp2() function for negative double numbers
#include <cmath>
#include <iostream>
  
using namespace std;
  
int main()
{
    double n = -3.14;
  
    double ans = exp2(n);
    cout << "exp2(-3.14) = " << ans << endl;
  
    return 0;
}
Output:
exp2(-3.14) = 0.11344

Program 2:




// C++ program to illustrate the
// exp2() function for positive numbers
#include <cmath>
#include <iostream>
  
using namespace std;
  
int main()
{
    int n = 6;
  
    int ans = exp2(n);
    cout << "exp2(6) = " << ans << endl;
  
    return 0;
}
Output:
exp2(6) = 64

Program 3:




// C++ program to illustrate the
// exp2() function for 0
#include <cmath>
#include <iostream>
  
using namespace std;
  
int main()
{
    int n = 0;
  
    int ans = exp2(n);
    cout << "exp2(0) = " << ans << endl;
  
    return 0;
}
Output:
exp2(0) = 1

Errors and Execptions: If the magnitude of the result is too large to be represented by a value of the return type, the function returns HUGE_VAL (or HUGE_VALF or HUGE_VALL) with the proper sign, and an overflow range error occurs.

Below program illustrate the error.




// C++ program to illustrate the
// exp2() function for range overflow
#include <cmath>
#include <iostream>
  
using namespace std;
  
int main()
{
    // overflow will occur as 2^100 will not
    // fit to int data-type
    int n = 100;
  
    int ans = exp2(n);
    cout << "exp2(100) = " << ans << endl;
  
    return 0;
}
Output:
exp2(100) = -2147483648
Want to learn from the best curated videos and practice problems, check out the C++ Foundation Course for Basic to Advanced C++ and C++ STL Course for foundation plus STL.  To complete your preparation from learning a language to DS Algo and many more,  please refer Complete Interview Preparation Course.
My Personal Notes arrow_drop_up
Recommended Articles
Page :