Bytes a binario en C

Estoy tratando de convertir simplemente un byte recibido de fget en binario.

Sé que el valor del primer byte fue 49 basado en la impresión del valor. Ahora necesito convertir esto en su valor binario.

unsigned char byte = 49;// Read from file
unsigned char mask = 1; // Bit mask
unsigned char bits[8];

  // Extract the bits
for (int i = 0; i < 8; i++) {
    // Mask each bit in the byte and store it
    bits[i] = byte & (mask << i);
}
 // For debug purposes, lets print the received data
for (int i = 0; i < 8; i++) {
printf("Bit: %d\n",bits[i]);
}

Esto imprimirá:

Bit: 1
Bit: 0
Bit: 0
Bit: 0
Bit: 16
Bit: 32
Bit: 0
Bit: 0
Press any key to continue . . .

Claramente, esto no es un valor binario. ¿Alguna ayuda?

Respuestas a la pregunta(6)

Su respuesta a la pregunta