⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sf_ldexp.c

📁 用于嵌入式Linux系统的标准C的库函数
💻 C
字号:
/* @(#)z_ldexpf.c 1.0 98/08/13 *//****************************************************************** * ldexp * * Input: *   d - a floating point value *   e - an exponent value * * Output: *   A floating point value f such that f = d * 2 ^ e. * * Description: *   This function creates a floating point number f such that *   f = d * 2 ^ e. * *****************************************************************/#include <float.h>#include "fdlibm.h"#include "zmath.h"#define FLOAT_EXP_OFFS 127float_DEFUN (ldexpf, (float, int),        float d _AND        int e){  int exp;  __int32_t wd;  GET_FLOAT_WORD (wd, d);  /* Check for special values and then scale d by e. */  switch (numtestf (wd))    {      case NAN:        errno = EDOM;        break;      case INF:        errno = ERANGE;        break;      case 0:        break;      default:        exp = (wd & 0x7f800000) >> 23;        exp += e;        if (exp > FLT_MAX_EXP + FLOAT_EXP_OFFS)         {           errno = ERANGE;           d = z_infinity_f.f;         }        else if (exp < FLT_MIN_EXP + FLOAT_EXP_OFFS)         {           errno = ERANGE;           d = -z_infinity_f.f;         }        else         {           wd &= 0x807fffff;           wd |= exp << 23;           SET_FLOAT_WORD (d, wd);         }    }    return (d);}#ifdef _DOUBLE_IS_32BITSdouble ldexp (double x, int e){  return (double) ldexpf ((float) x, e);}#endif /* defined(_DOUBLE_IS_32BITS) */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -