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


C语言 frexp用法及代码示例


C语言math头文件(math.h)中frexp函数的用法及代码示例。

用法:

     double frexp  (double x     , int* exp);
      float frexpf (float x      , int* exp);
long double frexpl (long double x, int* exp);
获得重要和 index
打破浮点数x转换为其二进制有效位数(绝对值介于0.5(包括)和1.0(不包括))和2,这样:

x =有效位数* 2exponent
这个exponent存储在由指向的位置expsignificand是该函数返回的值。

如果x为零,两个部分(有效数和 index )均为零。
如果x是负数,重要的此函数返回的结果为负。

标头<tgmath.h>提供此函数的type-generic宏版本。
额外的过载在此头文件中提供(<cmath>) 为了整数类型:这些重载有效地转换x到一个double计算之前(为T有任何整数类型)。

参数

x
待分解的价值。
exp
指向一个指针int存储 index 值的位置。

返回值

的二进制有效位x
该值是浮点值,其绝对值位于区间中[0.5,1)乘以2提升到exp,产量x

示例

/* frexp example */
#include <stdio.h>      /* printf */
#include <math.h>       /* frexp */

int main ()
{
  double param, result;
  int n;

  param = 8.0;
  result = frexp (param , &n);
  printf ("%f = %f * 2^%d\n", param, result, n);
  return 0;
}


输出:

8.000000 = 0.500000 * 2^4

相关用法


注:本文由纯净天空筛选整理自C标准库大神的英文原创作品 C frexp function。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。