примерно так:
Код
char getBit(char* array, int n)
{
return array[n/8] & (1<<(n%8));
}
void setBit(char* array, int n, char val)
{
char *p = &array[n/8];
if (val)
*p |= 1<<(n%8);
else
*p &= ~(1<<(n%8));
}
char array[50]; // размер 50*8
setBit(array, 10, 0);
setBit(array, 11, 1);
char t = getBit(array, 10);
Если с++ - можно обернуть это в класс с перегруженным оператором []