Código:
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
char* conversion(int num, int base)
{
char* resultado = new char[20];
int i = 0; //contador de posicion.
int n[20];
while(num > 0)
{
n[i] = num % base;
num = num / base;
i++;
}
int j = 0; //contador para resultado.
while(i >=0)
{
if(n[i] >= 0 && n[i] <= 9)
{
resultado[j] = char(n[i]);
}
else
{
switch(n[i])
{
case 10: resultado[j] = 'A';
break;
case 11: resultado[j] = 'B';
break;
case 12: resultado[j] = 'C';
break;
case 13: resultado[j] = 'D';
break;
case 14: resultado[j] = 'E';
break;
case 15: resultado[j] = 'F';
break;
}
}
i--;
j++;
}
return resultado;
}
int main()
{
int num, base;
int continuar = 0;
while (continuar == 0)
{
printf("Aqui puedes convertir un numero decimal a cualquier base entre 2 y 16.\n\nIngresa el numero a convertir: ");
scanf("%d", &num);
printf("\nA que base quieres convertirlo? ");
scanf("%d", &base);
printf("El numero %d en base %d es: ", num, base);
conversion(num, base);
printf("\n\nQuieres convertir otro numero? Si=0/No=1 ");
scanf("%d", &continuar);
system("cls");
}
printf("Presiona enter para salir...");
getch();
}