char set[(BITCOUNT + 7) / 8]; int getbit(char *set, int number) { set += number / 8; return (*set & (1 << (number % 8))) != 0; /* 0 or 1 */ } int setbit(char *set, int number, int value) { set += number / 8; if (value) *set |= 1 << (number % 8); /* set bit */ else *set &= ~(1 << (number % 8)); /* clear bit */ }