C言語 整数と小数の分割結合 指数と仮数の分割 - math.h - [ modef, frexp, ldexp ]

2008.09.06 Saturday | by LRESULT


動小数点の整数部と小数部の分割は、modf()を使います。

指数部と仮数部の分割には、frexp()、
指数と仮数から、浮動小数点を求めるには、ldexp()を使います。


modf
書式 double modf( double x, double *p )
機能 浮動小数点を、整数部と小数部に分割する
引数 double x : 元となる浮動小数点値
double *p : 分割された整数部を格納
戻り値 分割された小数部を返します。



frexp
書式 double frexp( double x, double *p )
機能 浮動小数点を、指数部と仮数部に分割する
引数 double x : 元となる浮動小数点値
double *p : 分割された指数部を格納
戻り値 分割された仮数部を返します。



ldexp
書式 double ldexp( double x, double n )
機能 仮数と指数から、浮動小数点値を求める
引数 double x : 仮数
double n : 指数
戻り値 x仮数と n指数からの浮動小数点値





サンプルコード
浮動小数点「6.54321」を整数部と小数部に分割します。
#include <stdio.h>
#include <math.h>

int main(void)
{
  double x = 6.54321;
  double a, b;

  b = modf( x, &a );
  printf( "浮動小数点x=%f¥n", x );
  printf( "整数部=%f 小数部=%f¥n", a, b );

  return 0;
}



結果
浮動小数点x=6.543210
整数部=6.000000 小数部=0.543210
と、きちんと分割できましたね。

カテゴリ:C言語 math.h | 21:11 | comments(2) | trackbacks(0) | -


コメント

管理者の承認待ちコメントです。

| - | 2014/10/10 3:31 PM |

コメント

frexp の第二引数が double* と書かれていますが、int* のようです。

http://www.cplusplus.com/reference/cmath/frexp/

| べる | 2014/12/30 12:00 PM |

コメントする











この記事のトラックバックURL

http://simd.jugem.jp/trackback/35

トラックバック