Disponible la nueva versión "donationware" 7.3 de OrganiZATOR
Descubre un nuevo concepto en el manejo de la información.
La mejor ayuda para sobrevivir en la moderna jungla de datos la tienes aquí.

Curso C++

[Home]  [Inicio]  [Índice]


9.5  Conversores


  Obtener el equivalente hexadecial de un número entero sin signo:  se aceptan sucesivas entradas numéricas por el teclado terminadas por intro hasta que se pulsa el carácter "0" (ASCII 48).  El programa utiliza una función recursiva para obtener sucesivamente los diversos caracteres que componen la representación hexadecimal. Puesto que se utiliza un unsigned int, el número proporcionado no debe exceder la capacidad de representación de este tipo ( 2.2.4).

#include <iostream.h>
using namespace std;

const char* hexStr = "0123456789abcdef";
void intToHex (unsigned int);

int main() {  // ====================
  unsigned int x;
  do { 
    cout << "\n\nIntroduzca un numero+Intro (0 para terminar): " << endl;
    cin >> x;
    cout << "Equivalente hexadeciaml de " << x << " : ";
    intToHex(x);
  } while (x != 0);
  return 0;
}

void intToHex (unsigned int num) {  // Funcion recursiva
  int digit = num/16;
  if (digit) intToHex(digit);
  cout << hexStr[num % 16];
}

Resultados obtenidos con diversos valores:

Introduzca un numero+Intro (0 para terminar):
128
Equivalente hexadeciaml de 128 : 80

Introduzca un numero+Intro (0 para terminar):
3250
Equivalente hexadeciaml de 3250 : cb2

Introduzca un numero+Intro (0 para terminar):
112448
Equivalente hexadeciaml de 112448 : 1b740