Cómo imprimir bits en c

Estoy escribiendo una función para imprimir bits en c, solo se me permite usarwrite función. mi función no funciona para otros números.

void    print_bits(unsigned char octet)
{
    int oct;
    int div;

    div = 128;
    oct = octet;
    while (!(div <= 1))
    {
        if (div <= oct)
        {
            write(1, "1", 1);
            oct = oct % div;
        }
        else
        {
            write(1, "0", 1);
            div = div / 2;
        }
    }
}

código en vivo

Respuestas a la pregunta(5)

Su respuesta a la pregunta