mpsub.c

来自「这是一个同样来自贝尔实验室的和UNIX有着渊源的操作系统, 其简洁的设计和实现易」· C语言 代码 · 共 53 行

C
53
字号
#include "os.h"#include <mp.h>#include "dat.h"// diff = abs(b1) - abs(b2), i.e., subtract the magnitudesvoidmpmagsub(mpint *b1, mpint *b2, mpint *diff){	int n, m, sign;	mpint *t;	// get the sizes right	if(mpmagcmp(b1, b2) < 0){		sign = -1;		t = b1;		b1 = b2;		b2 = t;	} else		sign = 1;	n = b1->top;	m = b2->top;	if(m == 0){		mpassign(b1, diff);		diff->sign = sign;		return;	}	mpbits(diff, n*Dbits);	mpvecsub(b1->p, n, b2->p, m, diff->p);	diff->sign = sign;	diff->top = n;	mpnorm(diff);}// diff = b1 - b2voidmpsub(mpint *b1, mpint *b2, mpint *diff){	int sign;	if(b1->sign != b2->sign){		sign = b1->sign;		mpmagadd(b1, b2, diff);		diff->sign = sign;		return;	}	sign = b1->sign;	mpmagsub(b1, b2, diff);	if(diff->top != 0)		diff->sign *= sign;}

⌨️ 快捷键说明

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