Aunque esto ya lo deberias saber, porque supongo que eres de computacion/informatica, te dare un breve recordatorio.
Un bit es un cero o uno.
Por lo tanto, una matriz de bits, seria una matriz en la que solo puede haber dos valores en cada posicion, un cero o un uno.
La unidad minima de informacion con que se trabaja y que representa algo, es un byte (conjunto de 8 bits).
Por lo tanto, para atacar ese problema, se podria hacer lo siguiente:
1. Usar una matriz normal de bytes, con un byte que repesente cada bit (no se si me entiendas) pero en la que solo puedas guardar 0 o 1.
2. Representar bit bor bit, para lo cual tiene que tomar en cuenta lo que dije antes, que un byte = 8 bits, por lo tanto el tamaño minimo de la matriz (un byte) seria de 8x1 bits o sea, un vector de bits en realidad. Si requieres mas filas, seria 2 bytes 8x2 bits, 3 bytes 8x3 bits, etc, y si requieres mas columnas, seria un byte = 8x1 bits, 2 bytes = 16x1 bits, 3bytes 24x1 bits, esto porque como dije antes, un byte = 8 bits.
Un listado para que te des mas idea:
Matriz de bits 8x2 (2 bytes)
Matriz de bits 16x2 (4 bytes)
00000000 00000000
00000000 00000000
Puse separados los bytes de columna, para que aprecies mejor que 16 columnas (bits) en realidad son 2 bytes.