sft_ext.c

来自「minux的源代码,一个非常小的操作系统」· C语言 代码 · 共 40 行

C
40
字号
/*
  (c) copyright 1988 by the Vrije Universiteit, Amsterdam, The Netherlands.
  See the copyright notice in the ACK home directory, in the file "Copyright".
*/

/* $Header: sft_ext.c,v 1.5 93/01/05 12:06:28 ceriel Exp $ */

/*
	SHIFT TWO EXTENDED NUMBERS INTO PROPER
	ALIGNMENT FOR ADDITION (exponents are equal)
	Numbers should not be zero on entry.
*/

#include "FP_types.h"

void
sft_ext(e1,e2)
EXTEND	*e1,*e2;
{
	register	EXTEND	*s;
	register	int	diff;

	diff = e1->exp - e2->exp;

	if (!diff)
		return;	/* exponents are equal	*/

	if (diff < 0)	{ /* e2 is larger	*/
			/* shift e1		*/
		diff = -diff;
		s = e1;
	}
	else		/* e1 is larger		*/
			/* shift e2		*/
		s = e2;

	s->exp += diff;
	b64_sft(&(s->mantissa), diff);
}

⌨️ 快捷键说明

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