📜  C++ STL-math.frexp()函数

📅  最后修改于: 2020-10-18 13:54:25             🧑  作者: Mango

C++ STL math.frexp()

此函数将浮点数分解为二进制有效数字和整数指数。

设浮点数为x,

其中,“ e”是指数,“ 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的指针,在其中存储了指数值。

返回值

它返回二进制有效位,其绝对值在0.5(包括)和1(排除)之间。

Parameter Significand exponent
x=0 zero zero
x>=1 positive number positive number
x>= -1 negative number positive number
-1 negative number negative number
0 positive number negative number

例子1

让我们看一个简单的示例,当x的值大于1时。

#include 
#include
using namespace std;
int main()
{
    double x=2;
    int* e;
    cout<<"Value of x is : "<

输出:

Value of x is : 2
2=0.5 * 2^2

在此示例中,当x的值大于1时,frexp()函数计算浮点数的二进制有效位数。

例子2

让我们看一个简单的例子,当x的值为零时

#include 
#include
using namespace std;
int main()
{
    double x=0;
    int* e;
    cout<<"Value of x is : "<

输出:

Value of x is : 0
0=0 * 2^0

在此示例中,当x的值为零时,frexp()函数计算浮点数的二进制有效位数。

例子3

让我们看一个简单的示例,其中x的值介于0和1之间。

#include 
#include
using namespace std;
int main()
{
    double x=0.4;
    int* e;
    cout<<"Value of x is : "<

输出:

Value of x is : 0.4
0.4=0.8 * 2^-1

在此示例中,当x的值介于0和1之间时,frexp()函数计算浮点数的二进制有效位数。

例子4

让我们看一个简单的示例,其中x的值介于-1和0之间。

#include 
#include
using namespace std;
int main()
{
    double x= -0.1;
    int* e;
    cout<<"Value of x is : "<

输出:

Value of x is : -0.1
-0.1=-0.8 * 2^-3

在此示例中,当x的值介于-1和0之间时,frexp()函数计算浮点数的二进制有效位数。

例子5

让我们看一个简单的例子,当x的值小于-1时。

#include 
#include
using namespace std;
int main()
{
    double x= -5;
    int* e;
    cout<<"Value of x is : "<

输出:

Value of x is : -5
-5=-0.625 * 2^3

在此示例中,当x的值小于-1时,frexp()函数计算浮点nmber的二进制有效位数。