24 lines
307 B
C
24 lines
307 B
C
|
|
#define IB1 1
|
|
#define IB2 2
|
|
#define IB5 16
|
|
#define IB18 131072
|
|
#define MASK (IB1+IB2+IB5)
|
|
|
|
int irbit2(iseed)
|
|
unsigned long *iseed;
|
|
{
|
|
if (*iseed & IB18) {
|
|
*iseed=((*iseed ^ MASK) << 1) | IB1;
|
|
return 1;
|
|
} else {
|
|
*iseed <<= 1;
|
|
return 0;
|
|
}
|
|
}
|
|
#undef MASK
|
|
#undef IB18
|
|
#undef IB5
|
|
#undef IB2
|
|
#undef IB1
|