此函数将浮点数分解为二进制有效数和整数 index 。
令浮点数为 x 然后,
x =(有效数)*2e
其中,'e' 是 index ,'significand' 是二进制有效数
用法
假设浮点数为 'x',指针为 'exp':
float frexp(float x, int* exp);
double frexp(double x, int* exp);
long double frexp(long double x, int* exp);
double frexp(integral x, int* exp);
参数
x: 要分解为二进制有效数的值。
exp: 它是一个指向 int 的指针,其中存储了 index 的值。
返回值
它返回绝对值介于 0.5(包括)和 1(不包括)之间的二进制有效数。
参数 | 有效数 | index |
---|---|---|
x=0 | zero | zero |
x>=1 | 正数 | 正数 |
x>= -1 | 负数 | 正数 |
-1<x<0 | 负数 | 负数 |
0<x<1 | 正数 | 负数 |
例子1
我们来看一个简单的例子,当 x 的值大于 1 时。
#include <iostream>
#include<math.h>
using namespace std;
int main()
{
double x=2;
int* e;
cout<<"Value of x is:"<<x<<'\n';
double significand = frexp(x,e);
std::cout <<x<<"="<<significand<<" * "<<"2^"<<*e;
return 0;
}
输出:
Value of x is:2 2=0.5 * 2^2
在本例中,frexp() 函数在 x 的值大于 1 时计算浮点数的二进制有效数。
例子2
让我们看一个简单的例子,当 x 的值为零时
#include <iostream>
#include<math.h>
using namespace std;
int main()
{
double x=0;
int* e;
cout<<"Value of x is:"<<x<<'\n';
double significand = frexp(x,e);
std::cout <<x<<"="<<significand<<" * "<<"2^"<<*e;
return 0;
}
输出:
Value of x is:0 0=0 * 2^0
在本例中,当 x 的值为零时,frexp() 函数计算浮点数的二进制有效数。
例子3
让我们看一个简单的例子,当 x 的值介于 0 和 1 之间时。
#include <iostream>
#include<math.h>
using namespace std;
int main()
{
double x=0.4;
int* e;
cout<<"Value of x is:"<<x<<'\n';
double significand = frexp(x,e);
std::cout <<x<<"="<<significand<<" * "<<"2^"<<*e;
return 0;
}
输出:
Value of x is:0.4 0.4=0.8 * 2^-1
在本例中,当 x 的值介于 0 和 1 之间时,frexp() 函数计算浮点数的二进制有效数。
示例 4
让我们看一个简单的例子,当 x 的值介于 -1 和 0 之间时。
#include <iostream>
#include<math.h>
using namespace std;
int main()
{
double x= -0.1;
int* e;
cout<<"Value of x is:"<<x<<'\n';
double significand = frexp(x,e);
std::cout <<x<<"="<<significand<<" * "<<"2^"<<*e;
return 0;
}
输出:
Value of x is:-0.1 -0.1=-0.8 * 2^-3
在本例中,当 x 的值介于 -1 和 0 之间时,frexp() 函数计算浮点数的二进制有效数。
例 5
让我们看一个简单的例子,当 x 的值小于 -1 时。
#include <iostream>
#include<math.h>
using namespace std;
int main()
{
double x= -5;
int* e;
cout<<"Value of x is:"<<x<<'\n';
double significand = frexp(x,e);
std::cout <<x<<"="<<significand<<" * "<<"2^"<<*e;
return 0;
}
输出:
Value of x is:-5 -5=-0.625 * 2^3
在本例中,当 x 的值小于 -1 时,frexp() 函数计算浮点数 nmber 的二进制有效数。
相关用法
- C++ Math fabs()用法及代码示例
- C++ Math fdim()用法及代码示例
- C++ Math fma()用法及代码示例
- C++ Math fpclassify()用法及代码示例
- C++ Math fmin()用法及代码示例
- C++ Math fmax()用法及代码示例
- C++ Math floor()用法及代码示例
- C++ Math fmod()用法及代码示例
- C++ Math scalbn()用法及代码示例
- C++ Math acosh()用法及代码示例
- C++ Math asinh()用法及代码示例
- C++ Math isgreater()用法及代码示例
- C++ Math islessgreater()用法及代码示例
- C++ Math log2()用法及代码示例
- C++ Math nearbyint()用法及代码示例
- C++ Math tan()用法及代码示例
- C++ Math log()用法及代码示例
- C++ Math nextafter()用法及代码示例
- C++ Math isfinite()用法及代码示例
- C++ Math erfc()用法及代码示例
注:本文由纯净天空筛选整理自 C++ Math frexp()。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。