/************************************************************************\ * Programa: cambiabase.cpp * * Descripción: Programa que imprime el numero N en Base 2 <= Base <= 16 * * Autor: Pedro Corcuera * * Revisión: 1.0 2/02/2008 * \************************************************************************/ #include #include using namespace std; void cambia_base( unsigned int N, unsigned int Base); main() { int i; const int MAX=256; cout << " N Base 2 Base 8 Base 16" << endl ; for (i=1; i< MAX; i++) { cout << setw(3) << i << " "; cambia_base(i,2) ; cout << " "; cambia_base(i,8); cout << " "; cambia_base(i,16); cout << endl; } } /************************************************************************\ * Funcion: cambia_base * * Descripción: imprime un numero entero N en la base Base 2 <= Base <= 16* * de manera recursiva * * Argumentos: int N: numero decimal * * int Base: base a la que se desea convertir 2 <= Base <= 16 * * Valor devuelto: ninguno (la funcion imprime el numero) * * Autor: Pedro Corcuera * * Revisión: 1.0 2/02/2008 * \************************************************************************/ void cambia_base( unsigned int N, unsigned int Base ) { static char Tabla_Digitos[ ] = "0123456789abcdef"; if( N >= Base ) cambia_base( N / Base, Base ); cout << Tabla_Digitos[ N % Base ]; // putchar( Tabla_Digitos[ N % Base ] ); }