itog.c

来自「<B>Digital的Unix操作系统VAX 4.2源码</B>」· C语言 代码 · 共 53 行

C
53
字号
/*	@(#)itog.c	4.1	ULTRIX	7/3/90	*/#include	"VAX_to_IEEE.h"double		itog	(value)		double_precision	*value;{	double_precision	result;	/* We ignore true zeros.					*/	if	((value->longs [0] | value->longs [1]) == 0)	{	return	(0);	}	/* Look for NaNs, translating them into reserved operands.	*/	if	((value->IDL.exponent_10__0 == (ID_E_biased_max + 1)) &&		 ((value->IDL.fraction_51_32 | value->IDL.fraction_31__0) != 0)		)	{	value->longs [0] = 0;		value->longs [1] = 0;		value->VG.sign = 1;		return	(0);	}	/* Check the exponent for range problems, signalling overflow	*/	/* if too large.						*/	if	(VG_E_biased_max < (value->IDL.exponent_10__0 + VG_ID_E_dif))	{	return (-1);	}	/* Make the conversion, by:					*/	/*								*/	/*	(a) swaping the words (0 <> 3, 1 <> 2), and		*/	/*	(b) biasing the exponent (-2).				*/	result.words [0] = value->words [3];	result.words [3] = value->words [0];	result.words [1] = value->words [2];	result.words [2] = value->words [1];	result.VG.exponent_10__0 += VG_ID_E_dif;	/* Return the result.						*/	value->longs [0] = result.longs [0];	value->longs [1] = result.longs [1];	return	(0);}

⌨️ 快捷键说明

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