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

📄 cmf8.c

📁 操作系统源代码
💻 C
字号:
/*  (c) copyright 1988 by the Vrije Universiteit, Amsterdam, The Netherlands.  See the copyright notice in the ACK home directory, in the file "Copyright".*//* $Header: cmf8.c,v 1.9 93/01/05 12:04:22 ceriel Exp $ *//*	COMPARE	DOUBLES (CMF 8)*/#include	"FP_types.h"#include	"get_put.h"intcmf8(d1,d2)DOUBLE	d1,d2;{#define	SIGN(x)	(((x) < 0) ? -1 : 1)		/*		 * return ((d1 < d2) ? 1 : (d1 > d2) ? -1 : 0))		 */	long	l1,l2;	int	sign1,sign2;	int	rv;#if FL_MSL_AT_LOW_ADDRESS	l1 = get4((char *)&d1);	l2 = get4((char *)&d2);#else	l1 = get4(((char *)&d1+4));	l2 = get4(((char *)&d2+4));#endif	sign1 = SIGN(l1);	sign2 = SIGN(l2);	if (sign1 != sign2) {		l1 &= 0x7fffffff;		l2 &= 0x7fffffff;		if (l1 != 0 || l2 != 0) {			return ((sign1 > 0) ? -1 : 1);		}	}	if (l1 != l2)	{	/* we can decide here */		rv = l1 < l2 ? 1 : -1;	}	else	{ 		/* decide in 2nd half */		unsigned long u1, u2;#if FL_MSL_AT_LOW_ADDRESS		u1 = get4(((char *)&d1 + 4));		u2 = get4(((char *)&d2 + 4));#else		u1 = get4((char *)&d1);		u2 = get4((char *)&d2);#endif		if (u1 == u2)			return(0);		if (u1 < u2) rv = 1;		else rv = -1;	}	return sign1 * rv;}

⌨️ 快捷键说明

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