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

📄 ldexp.c

📁 操作系统源代码
💻 C
字号:
/* * (c) copyright 1987 by the Vrije Universiteit, Amsterdam, The Netherlands. * See the copyright notice in the ACK home directory, in the file "Copyright". *//* $Header: ldexp.c,v 1.5 91/03/19 16:38:37 ceriel Exp $ */#include	<math.h>#include	<float.h>#include	<errno.h>doubleldexp(double fl, int exp){	int sign = 1;	int currexp;	if (__IsNan(fl)) {		errno = EDOM;		return fl;	}	if (fl == 0.0) return 0.0;	if (fl<0) {		fl = -fl;		sign = -1;	}	if (fl > DBL_MAX) {		/* for infinity */		errno = ERANGE;		return sign * fl;	}	fl = frexp(fl,&currexp);	exp += currexp;	if (exp > 0) {		if (exp > DBL_MAX_EXP) {			errno = ERANGE;			return sign * HUGE_VAL;		}		while (exp>30) {			fl *= (double) (1L << 30);			exp -= 30;		}		fl *= (double) (1L << exp);	}	else	{		/* number need not be normalized */		if (exp < DBL_MIN_EXP - DBL_MANT_DIG) {			return 0.0;		}		while (exp<-30) {			fl /= (double) (1L << 30);			exp += 30;		}		fl /= (double) (1L << -exp);	}	return sign * fl;}

⌨️ 快捷键说明

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