#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():
x がゼロの場合、正規化小数はゼロになり *exp にはゼロが格納される。
x が NaN の場合、NaN が返される。 *exp の値は不定である。
x が正の無限大 (負の無限大) の場合、 正の無限大 (負の無限大) が返される。 *exp の値は不定である。
インターフェース | 属性 | 値 |
frexp(), frexpf(), frexpl() | Thread safety | MT-Safe |
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
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); }
[man1]
[man2]
[man3]
[man4]
[man5]
[man6]
[man7]
[man8]
[a]
[b]
[c]
[d]
[e]
[f]
[g]
[h]
[i]
[j]
[k]
[l]
[m]
[n]
[o]
[p]
[q]
[r]
[s]
[t]
[u]
[v]
[w]
[x]
[y]
[z]