Charles.Forsyth20060303644188019 years agoHistory
89 lines · 850 B · C
RawDownload
#include	"cc.h" Bitsbor(Bits a, Bits b){	Bits c;	int i; 	for(i=0; i<BITS; i++)		c.b[i] = a.b[i] | b.b[i];	return c;} Bitsband(Bits a, Bits b){	Bits c;	int i; 	for(i=0; i<BITS; i++)		c.b[i] = a.b[i] & b.b[i];	return c;} /*Bitsbnot(Bits a){	Bits c;	int i; 	for(i=0; i<BITS; i++)		c.b[i] = ~a.b[i];	return c;}*/ intbany(Bits *a){	int i; 	for(i=0; i<BITS; i++)		if(a->b[i])			return 1;	return 0;} intbeq(Bits a, Bits b){	int i; 	for(i=0; i<BITS; i++)		if(a.b[i] != b.b[i])			return 0;	return 1;} intbnum(Bits a){	int i;	long b; 	for(i=0; i<BITS; i++)		if(b = a.b[i])			return 32*i + bitno(b);	diag(Z, "bad in bnum");	return 0;} Bitsblsh(uint n){	Bits c; 	c = zbits;	c.b[n/32] = 1L << (n%32);	return c;} intbset(Bits a, uint n){	if(a.b[n/32] & (1L << (n%32)))		return 1;	return 0;}