I don't know where you got the idea that a char is four bits. Four bits can have only 16 different values. How could you represent a "character" with sixteen different values ?
Well you get a byte, and you put your four bits of information into it, and leave the other four bits as zero.
And then you get another byte, and you set four bits in that byte according to the desired elements of your boolean array, and leave the other four bits as zero.
And then you compare those two bytes, and if they are the same, then you have a match. The usual way to compare them, is to subtract one byte from the other byte, and see if the result is zero.