Conversor decimal a binario en C

#1
Hola

Tengo que hacer un programa en C que convierta dacimal a binario y hexadecimal y viseversa.
Recién empiezo. El conversor decimal a binario ya funciona pero no correctamente. Al introducir un número, por ejemplo 2, el numero binario es 01. No es que el programa anda mal, sino que funciona pero el número binaio esta espejado. Mi pregunta es si alguien sabe como espejar un número en C. El programa es este:

Código:
#include <stdio.h>
main ()
{
     int decimal, binario, aux;
     printf ("introducir numero decimal\n");
     scanf ("%i", &decimal);
     while (decimal>1)
     {
         aux=decimal/2;       
         binario=decimal%2;
         decimal=aux;
         if (binario==5)
         {
                        binario=1;
         }
         printf ("%i", binario);
     }
     if (decimal==1)
     {
                    printf ("1");
     }
     else
     {
         printf ("0");
     }
}
 
Última edición por un moderador:
#2
hola, esta correccion te pude servir...
--------------------------------------
Código:
#include <stdio.h>
#include <conio.h>
main ()
{
    int decimal, binario, aux;
    char dato[16];
    char n=0,m;
    printf("introducir numero decimal pocitivo y menor que 65536\n");
    scanf("%i", &decimal);
    while (decimal>1)
    {
        aux=decimal/2;
        binario=decimal%2;
        decimal=aux;
        if (binario==5)
        {    
            binario=1;
        }
        dato[n]=binario;
        n++;
        //printf ("%i", binario);
    }
    if (decimal==1)
    {
        //printf ("1");
        dato[n]=1;
    }
    else
    {
        dato[n]=0;
        //printf ("0");
    }
    printf("El valor en binario es=");
    for(m=n;m>=0;m--)
    {
        printf("%i",dato[m]);
    }
    getch();
}
 
Última edición por un moderador:
Arriba