Я бы не хранил биты в массиве - я бы ИЛИ их с символом.
Итак, вы начинаете со значения символа 0: char bit = 0;
Когда вы получите первый бит, ИЛИ с тем, что у вас есть: bit |= bit_just_read;
Продолжайте делать это с каждым битом, смещаясь соответствующим образом; после получения следующего бита, выполните bit |= (next_bit << 1);
. И так далее.
После того, как вы прочитаете свои 8 битов, bit
будет подходящим значением ASCII, и вы можете распечатать его или сделать с ним все, что захотите.