フォーマット
#include <math.h> double frexp(double x, int *expptr);
言語レベル: ANSI
スレッド・セーフ: はい。
説明
frexp() 関数は浮動小数点値 x を小数部の項 m と指数部の項 n に分けます。 これは、x=m*2 n のように行われ、m の絶対値は 0.5 以上かつ 1.0 未満、または 0 です。frexp() 関数は整数の指数 n を expptr が指すロケーションに格納します。
戻り値
frexp() 関数は小数部の項 m を戻します。x が 0 の場合、frexp() は小数部指数部の両方に対して 0 を戻します。小数部には引数 x と同じ符号が付きます。frexp() 関数の結果は範囲エラーを持つことができません。
frexp() の使用例
次の例は x の浮動小数点値 16.4 をその小数部 0.5125 と指数部 5 に分けます。小数部を y に、指数部を n に格納します。
#include <math.h> #include <stdio.h> int main(void) { double x, m; int n; x = 16.4; m = frexp(x, n); printf("The mantissa is %lf and the exponent is %d¥n", m, n); } /******************* Output should be similar to: *************** The mantissa is 0.512500 and the exponent is 5 */
関連情報