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

📄 mpdigdiv.c

📁 这是一个同样来自贝尔实验室的和UNIX有着渊源的操作系统, 其简洁的设计和实现易于我们学习和理解
💻 C
字号:
#include "os.h"#include <mp.h>#include "dat.h"////	divide two digits by one and return quotient//voidmpdigdiv(mpdigit *dividend, mpdigit divisor, mpdigit *quotient){	mpdigit hi, lo, q, x, y;	int i;	hi = dividend[1];	lo = dividend[0];	// return highest digit value if the result >= 2**32	if(hi >= divisor || divisor == 0){		divisor = 0;		*quotient = ~divisor;		return;	}	// at this point we know that hi < divisor	// just shift and subtract till we're done	q = 0;	x = divisor;	for(i = Dbits-1; hi > 0 && i >= 0; i--){		x >>= 1;		if(x > hi)			continue;		y = divisor<<i;		if(x == hi && y > lo)			continue;		if(y > lo)			hi--;		lo -= y;		hi -= x;		q |= 1<<i;	}	q += lo/divisor;	*quotient = q;}

⌨️ 快捷键说明

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