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

📄 base_conv.c

📁 操作系统SunOS 4.1.3版本的源码
💻 C
字号:
#ifdef sccsidstatic char     sccsid[] = "@(#)base_conv.c 1.1 92/07/30 Copyr 1986 Sun Micro";#endif/* * Copyright (c) 1986 by Sun Microsystems, Inc.  *//* * Machine-independent versions of base conversion primitives. * Routines to multiply buffers by 2**16 or 10**4. Base 10**4 buffers have * b[i] < 10000, carry in and out < 65536. Base 2**16 buffers have b[i] < * 65536, carry in and out < 10000. If n is positive, b[0]..b[n-1] are * processed; if n is negative, b[0]..b[n+1] are processed.  */void _fourdigits(t, d)	unsigned        t;	char            d[4];/* Converts t < 10000 into four ascii digits at *pc.	 */{	register short  i;	i = 3;	do {		d[i] = '0' + t % 10;		t = t / 10;	}	while (--i != -1);}unsigned _quorem10000(u, pr)	unsigned        u;	unsigned       *pr;{	*pr = u % 10000;	return (u / 10000);}void _mul_10000(b, n, c)	unsigned       *b;	int             n;	unsigned       *c;{	/* Multiply base-2**16 buffer by 10000. */	register unsigned carry, t;	register short int i;	register unsigned *pb;	carry = *c;	pb = b;	if ((i = n) > 0) {		i--;		do {			*pb = (t = (*pb * 10000) + carry) & 0xffff;			pb++;			carry = t >> 16;		}		while (--i != -1);	} else {		i = -i - 1;		do {			*pb = (t = (*pb * 10000) + carry) & 0xffff;			pb--;			carry = t >> 16;		}		while (--i != -1);	}	*c = carry;}void _mul_65536(b, n, c)	unsigned       *b;	int             n;	unsigned       *c;{	/* Multiply base-10**4 buffer by 65536. */	register unsigned carry, t;	register short int i;	register unsigned *pb;	carry = *c;	pb = b;	if ((i = n) > 0) {		i--;		do {			*pb = (t = (*pb << 16) | carry) % 10000;			pb++;			carry = t / 10000;		}		while (--i != -1);	} else {		i = -i - 1;		do {			*pb = (t = (*pb << 16) | carry) % 10000;			pb--;			carry = t / 10000;		}		while (--i != -1);	}	*c = carry;}

⌨️ 快捷键说明

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