當前位置: 首頁>>編程示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。