Hola, gracias por tu consejo, ahora me funciona todo excepto esta funcion:
   
Código c:
Ver originalvoid convertirb (char *n)
{
    int i=0, binario=0;
 
 
 
for (i=0; n[i]==1;) //Estoy casi seguro de que aqui esta el fallo pero no se como arreglarlo
    {
        binario=binario+(n[i]%2);
        n[i]=binario;
    }
}
  
Y con la octal y la de hexadecimal igual, pero si me deciis como arreglalo seria de gran ayuda.