domingo, 1 de junio de 2014

Cómo convertir de Hexadecimal a Decimal??


Una pregunta muy usual es la de : como convierto números de base 16 ( hexadecimal ) a base 10 ( decimal ).??

Hay muchas maneras de explicarlo, pero me parece que la más sencilla es poniendo un código sencillo que todo el mundo entenderá.

Copiad este código en un archivo main.c en blanco, compiladlo y ejecutadlo. Si tenéis dudas en este proceso podéis mirar este link

Cualquier duda, no vaciléis en hacérmela llegar.

int ValorDecimal( char c)
{
if( c >= '0' && c <= '9' )
{
return ( (int) c-'0');
}
else
{
if(c >= 'A' && c <= 'F')
{
return ((int) (c - 'A') + 10 );
}
else
{
if(c >= 'a' && c <= 'f')
{
return ((int)(c - 'a') + 10 );
}
else return 0;
}
}
}

int ConvertHexToDec(char *num)
{
int len = strlen(num);
int decimal = 0;
int i;

for(i = 0; i < len ; i++)
{
decimal *= 16;
decimal += ValorDecimal(num[i]);
}
return decimal;
}

int main(int argc, char *argv[])
{
char num[16];
int decimal = 0;
int salir = 0;

while(!salir)
{
printf("Introduzca un numero para convertir de hexadecimal a decimal: ");
scanf("%s",num);

decimal = ConvertHexToDec(num);

printf("%s en hexadecimal es el %d en decimal\n", num, decimal);
}
}

LordPakusBlog

0 comentarios :

Publicar un comentario

Entradas populares