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

📄 sub_ext.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: sub_ext.c,v 1.6 93/01/05 12:06:40 ceriel Exp $ *//*	SUBTRACT 2 EXTENDED FORMAT NUMBERS*/#include "FP_types.h"voidsub_ext(e1,e2)EXTEND	*e1,*e2;{	if ((e2->m1 | e2->m2) == 0L) {		return;	}	if ((e1->m1 | e1->m2) == 0L) {		*e1 = *e2;		e1->sign = e2->sign ? 0 : 1;		return;	}	sft_ext(e1, e2);	if (e1->sign != e2->sign) {		/* e1 - e2 = e1 + (-e2) */		if (b64_add(&e1->mantissa,&e2->mantissa)) { /* addition carry */                	b64_rsft(&e1->mantissa);      /* shift mantissa one bit RIGHT */                	e1->m1 |= 0x80000000L;  /* set max bit  */                	e1->exp++;              /* increase the exponent */        	}	}        else if (e2->m1 > e1->m1 ||                 (e2->m1 == e1->m1 && e2->m2 > e1->m2)) {		/*	abs(e2) > abs(e1) */		if (e1->m2 > e2->m2) {			e2->m1 -= 1;	/* carry in */		}		e2->m1 -= e1->m1;		e2->m2 -= e1->m2;		*e1 = *e2;		e1->sign = e2->sign ? 0 : 1;	}	else {		if (e2->m2 > e1->m2)			e1->m1 -= 1;	/* carry in */		e1->m1 -= e2->m1;		e1->m2 -= e2->m2;	}	nrm_ext(e1);}

⌨️ 快捷键说明

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