当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


C++ Math frexp()用法及代码示例


此函数将浮点数分解为二进制有效数和整数 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 frexp()。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。