Código:
#include <stdio.h>
int leeNumero();
void decBin(int n);
int main()
{
int n;
n = leeNumero();
decBin(n);
printf("\n);
return 0;
}
int leeNumero()
{
int numero;
do
{
printf("Introduzca un número no negativo: ");
scanf("%d", &numero);
}
while (numero<0);
return numero;
}
void decBin(int n)
{
if (n == 0)
printf("0");
else if (n == 1)
printf("1");
else
{
decBin(n / 2);
printf("%d", n % 2);
}
}
Yo el programa lo entiendo de esta manera:
Declaramos las funciones leeNumero y decBin, entramos en la función main, a través de la función leeNumero se comprueba que el número no sea negativo, volvemos a la función main y entramos en la función decBin, y es ahí donde me surge la duda, ya que no entiendo muy bien como hace la conversión a binario :S
¿Alguna ayuda?, gracias de antemano!
P.D: El programa funciona perfectamente