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

📄 mprand.c

📁 这是一个同样来自贝尔实验室的和UNIX有着渊源的操作系统, 其简洁的设计和实现易于我们学习和理解
💻 C
字号:
#include "os.h"#include <mp.h>#include <libsec.h>#include "dat.h"mpint*mprand(int bits, void (*gen)(uchar*, int), mpint *b){	int n, m;	mpdigit mask;	uchar *p;	n = DIGITS(bits);	if(b == nil)		b = mpnew(bits);	else		mpbits(b, bits);	p = malloc(n*Dbytes);	if(p == nil)		return nil;	(*gen)(p, n*Dbytes);	betomp(p, n*Dbytes, b);	free(p);	// make sure we don't give too many bits	m = bits%Dbits;	n--;	if(m > 0){		mask = 1;		mask <<= m;		mask--;		b->p[n] &= mask;	}	for(; n >= 0; n--)		if(b->p[n] != 0)			break;	b->top = n+1;	b->sign = 1;	return b;}

⌨️ 快捷键说明

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