FREXP

Section: Linux Programmer's Manual (3)
Updated: 2020-06-09
Index JM Home Page
 

名前

frexp, frexpf, frexpl - 浮動小数点実数を小数成分と整数成分に変換する  

書式

#include <math.h>

double frexp(double x, int *exp);
float frexpf(float x, int *exp);
long double frexpl(long double x, int *exp);

-lm でリンクする。

glibc 向けの機能検査マクロの要件 (feature_test_macros(7) 参照):

frexpf(), frexpl():

_ISOC99_SOURCE || _POSIX_C_SOURCE >= 200112L
    || /* Since glibc 2.19: */ _DEFAULT_SOURCE
    || /* Glibc versions <= 2.19: */ _BSD_SOURCE || _SVID_SOURCE
 

説明

これらの関数は浮動小数点実数 x を正規化小数と指数に分解し、 指数を *exp に格納する。  

返り値

これらの関数は正規化小数を返す。 引数 x がゼロでない場合、この正規化小数は x に 2 の累乗を乗じたものであり、その絶対値は 常に 1/2 以上 1 未満、つまり [0.5,1) となる。

x がゼロの場合、正規化小数はゼロになり *exp にはゼロが格納される。

x が NaN の場合、NaN が返される。 *exp の値は不定である。

x が正の無限大 (負の無限大) の場合、 正の無限大 (負の無限大) が返される。 *exp の値は不定である。  

エラー

エラーは発生しない。  

属性

この節で使用されている用語の説明については、 attributes(7) を参照。
インターフェース 属性 値
frexp(), frexpf(), frexpl() Thread safety MT-Safe
 

準拠

C99, POSIX.1-2001, POSIX.1-2008.

double 版の関数は SVr4, 4.3BSD, C89 にも準拠している。  

例

このプログラムを実行すると以下のような結果となる:

$ ./a.out 2560 frexp(2560, &e) = 0.625: 0.625 * 2ha12 = 2560 $ ./a.out -4 frexp(-4, &e) = -0.5: -0.5 * 2ha3 = -4  

プログラムのソース

#include <math.h> #include <float.h> #include <stdio.h> #include <stdlib.h>

int main(int argc, char *argv[]) {
    double x, r;
    int exp;


    x = strtod(argv[1], NULL);
    r = frexp(x, &exp);


    printf("frexp(%g, &e) = %g: %g * %dha%d = %g\n",
           x, r, r, FLT_RADIX, exp, x);
    exit(EXIT_SUCCESS); }  

関連項目

ldexp(3), modf(3)  

この文書について

この man ページは Linux man-pages プロジェクトのリリース 5.10 の一部である。プロジェクトの説明とバグ報告に関する情報は https://www.kernel.org/doc/man-pages/ に書かれている。

関連キーワード

frexp   小数   double   正規化   無限大   frexpf   frexpl   浮動   小数点   実数   成分   math   float   指数   格納   不定   argv   整数   long   検査   マクロ   要件   macros   Since   versions

Linux マニュアル 一覧

関連するコマンド・関数

frexp.3   frexpl.3   logb.3   logbf.3   logbl.3   modf.3
 

Index

名前
書式
説明
返り値
エラー
属性
準拠
例
プログラムのソース
関連項目
この文書について

This document was created by man2html, using the manual pages.
Time: 04:39:36 GMT, October 11, 2026