frexp.c

来自「MMI层OBJ不能完全编译」· C语言 代码 · 共 28 行

C
28
字号
/****************************************************************************/
/*  frexp  v2.54                                                            */
/*  Copyright (c) 1995-2004 Texas Instruments Incorporated                  */
/****************************************************************************/
#include <math.h>

double frexp(double value, int *exp)
{
     unsigned long *ptr = (unsigned long *)&value;

     /***********************************************************************/
     /* IF THE VALUE IS ZERO, THE RESULTS ARE ZERO                          */ 
     /***********************************************************************/ 
     if (!*ptr) { *exp = 0; return value; }

     /***********************************************************************/
     /* EXTRACT THE EXPONENT, SUBTRACT THE BIAS, THEN ADD 1                 */
     /***********************************************************************/
     *exp = ((*ptr >> 20) & 0x7FF) - 0x3FE;

     /***********************************************************************/
     /* SET THE EXPONENT OF THE FRACTION TO -1                              */
     /***********************************************************************/
     *ptr = (*ptr & 0x800FFFFF) | (0x3FE << 20);

     return (value);
}

⌨️ 快捷键说明

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