TODOPIC
Microcontroladores PIC => dsPIC => Mensaje iniciado 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.
-
¿En qué tipo de variable tienes el número hexadecimal?, ¿un string de caracteres?
-
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;
}
-
Ahora estoy intentando hacer una funcion que me convierta de decimal a hexadecimal