Cambio de base en C
#include "stdio.h" #include "conio.h" #include "string.h" #include "math.h" #include "stdlib.h" void CambioBase (char *num, int baseorigen, int basedestino); int main (void) { char *num; int baseorigen, basedestino; clrscr (); printf ("Escribe el numero a convertir: "); scanf ("%s", num); printf ("Dado en base (2,8,10,16): "); scanf ("%d", &baseorigen); printf ("Convertir a base (2,8,10.16): "); scanf ("%d", &basedestino); CambioBase (num, baseorigen, basedestino); getch (); return 0; } void CambioBase (char *num, int baseorigen, int basedestino) { long destino[20]; char *tmp; int n, i, tam = strlen (num) - 1, total = 0; for (i = 0, n = tam; n >= 0; i++, n--) { switch (num[n]) { case 'a': { destino[i] = 10 * pow (baseorigen, i); break; } case 'b': { destino[i] = 11 * pow (baseorigen, i); break; } case 'c': { destino[i] = 12 * pow (baseorigen, i); break; } case 'd': { destino[i] = 13 * pow (baseorigen, i); break; } case 'e': { destino[i] = 14 * pow (baseorigen, i); break; } case 'f': { destino[i] = 15 * pow (baseorigen, i); break; } default: { tmp[0] = num[n]; destino[i] = atoi (tmp) * pow (baseorigen, i); break; } } total += destino[i]; } printf ("EL %s base %d a base %d es: ", num, baseorigen, basedestino); if (basedestino == 16 && total >= 0 && total <= 15) { switch (total) { case 10: { printf ("a"); break; } case 11: { printf ("b"); break; } case 12: { printf ("c"); break; } case 13: { printf ("d"); break; } case 14: { printf ("e"); break; } case 15: { printf ("f"); break; } default: { printf ("%d", total); break; } } } else { for (i = 0; total > 0; i++) { destino[i] = total % basedestino; total /= basedestino; } for (i = i - 1; i >= 0; i--) { switch (destino[i]) { case 10: { printf ("a"); break; } case 11: { printf ("b"); break; } case 12: { printf ("c"); break; } case 13: { printf ("d"); break; } case 14: { printf ("e"); break; } case 15: { printf ("f"); break; } default: { printf ("%d", destino[i]); break; } } } } }
Quizá te interese :
Eres libre para utilizar estas rutinas y si lo deseas poner un link hacia www.ubicuos.com. Da ...
Juego del Gato en C. /*Juego de Gato Heurístico Autor:Jesús M.Olivares Ceja Desarrollad ...
#include #include #include void cifrar (char *archivo, char *llave); void descifrar (ch ...





