sf_frexp.c
来自「KPIT GNU Tools is a set of GNU developme」· C语言 代码 · 共 60 行
C
60 行
/* @(#)z_frexpf.c 1.0 98/08/13 *//****************************************************************** * frexp * * Input: * d - floating point value * exp - exponent value * * Output: * A floating point value in the range [0.5, 1). * * Description: * This routine breaks a floating point value into a number f and * an exponent exp such that d = f * 2 ^ exp. * *****************************************************************/#include "fdlibm.h"#include "zmath.h"float frexpf (float d, int *exp){ float f; __int32_t wf, wd; /* Check for special values. */ switch (numtestf (d)) { case NAN: case INF: errno = EDOM; case 0: *exp = 0; return (d); } GET_FLOAT_WORD (wd, d); /* Get the exponent. */ *exp = ((wd & 0x7f800000) >> 23) - 126; /* Get the mantissa. */ wf = wd & 0x7fffff; wf |= 0x3f000000; SET_FLOAT_WORD (f, wf); return (f);}#ifdef _DOUBLE_IS_32BITSdouble frexp (double x, int *exp){ return (double) frexpf ((float) x, exp);}#endif /* defined(_DOUBLE_IS_32BITS) */
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?