Conversion Hexadecimal a Decimal en C++
Publicado por elpollo12 (1 intervención) el 19/05/2008 04:58:30
Buenas!! Tengo el siguiente problema... y es que en la univ me asignaron la realización de la conversion en c++ de Hexadecimal a Decimal .... bien lo pudiese hacer utilizando hex y dec de iostream, pero como es para fines educativos, el profesor nos ha dicho que no lo quiere bajo ese método. Pues bien he desarrollado el siguiente código:
El problema es que me funciona bien cuando se ingresan 2 letras, por ejemplo FF = 255 ... pero cuando ingreso 2 numeros, por ejemplo 29 o un numero y una letra, como A1 no me arroja el resultado correcto. A ver si me pueden hechar una mano para detectar el problema. Muchas Gracias.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#include <iostream.h>
#include <string.h>
#include <conio.h>
#include <math.h>
main() {
char cad[1]={' '};
int c=0,n=0,tam,i,num[1];
clrscr();
cout<<"Ingrese el numero: ";
cin>>cad;
tam=strlen(cad);
for(i=tam-1; i>=0; i--) {
if(cad[i]<10 && cad[i]>0)
n=n+cad[i]*pow(16,c);
else if(cad[i]=='a') num[i]=10;
else if(cad[i]=='b') num[i]=11;
else if(cad[i]=='c') num[i]=12;
else if(cad[i]=='d') num[i]=13;
else if(cad[i]=='e') num[i]=14;
else if(cad[i]=='f') num[i]=15;
n=n+num[i]*pow(16,c);
c++; }
cout<<"El resultado es: "<<n<<endl;
getch();
return 0;
}
El problema es que me funciona bien cuando se ingresan 2 letras, por ejemplo FF = 255 ... pero cuando ingreso 2 numeros, por ejemplo 29 o un numero y una letra, como A1 no me arroja el resultado correcto. A ver si me pueden hechar una mano para detectar el problema. Muchas Gracias.
Valora esta pregunta


0