TODOPIC

Microcontroladores PIC => dsPIC => Mensaje iniciado por: zer0007 en 01 de Septiembre de 2005, 00:57:00

Título: Hexadecimal a decimal
Publicado por: zer0007 en 01 de Septiembre de 2005, 00:57:00
Necesito pasar un numero de hexadecimal a decimal, en teoria debemos coger cada una de las cifras del numero hexadecimal y la primera multiplicarla por 16, la segunda por 16 al cuadrado, la tercera por 16 al cubo y se suman.

Como puedo descomponer en cifras un numero hexadecimal, he pensad dividiendo por 100, 10 y luego el restoo, pero en el C30 no se como hacerlo ¿?

Alguien podria ayudarme ? Grácias.
Título: RE: Hexadecimal a decimal
Publicado por: Nocturno en 01 de Septiembre de 2005, 02:46:00
¿En qué tipo de variable tienes el número hexadecimal?, ¿un string de caracteres?
Título: RE: Hexadecimal a decimal
Publicado por: zer0007 en 07 de Septiembre de 2005, 04:29:00
Esto es lo que he hechop y funciona rebujito

#include <stdlib.h>


unsigned int DecimaltoHex(unsigned int Dec)
{
   unsigned int pHex;
   ldiv_t sHex;
   ldiv_t tHex;
   ldiv_t cHex;
   unsigned int total;
   
   cHex = ldiv(Dec,0x1000);
   tHex = ldiv(cHex.rem, 0x100);   
   sHex = ldiv(tHex.rem, 0x10);
   pHex = sHex.rem;
   
   total = ((cHex.quot * 4096) + (tHex.quot * 256) + (sHex.quot * 16)  + sHex.rem);
   return total;
}
Título: RE: Hexadecimal a decimal
Publicado por: zer0007 en 07 de Septiembre de 2005, 04:52:00
Ahora estoy intentando hacer una funcion que me convierta de decimal a hexadecimal