Buenas a tos:
Lo que pretendo programar es lo siguiente, tengo un array de 13bytes donde en cada posicion reservo un digito del numero que quiero obtener ordenados de mayor a menor(me explico con un ejemplo, teniendo un array de 5bytes, cuyo contendido fuese | 2 | 6 | 2 | 1 | 8 |, en este caso, el 8 serian las unidades del numero que busco, el 1 las decenas, el 2 las centenas y asi sucesivamente, es decir, lo que pretenderia seria buscar el valor 26218 y que la funcion me lo devolviese). Espero que se entienda.
Lo que ocurre es que yo tengo un valor de 13digitos decimales lo que en binario equivale a 40bits, mi problema es como trabajo con esos 40bits, no lo doy conseguido.
Os mando el codigo que yo tengo, el cual mientras no sobrepasa el valor 255 que es hasta lo que puedo representar con un byte funciona correctamente, una vez que ocurre eso no me funciona
void potencia(BYTE x, BYTE y, BYTE *result)
{
int i;
result = 1;
for(i = 0; i < y; i++)
result = result * x;
}
void obtener_decimal(BYTE *cod_dec, codigo *decimal)
{
int i,j;
int p;
*decimal = (BYTE *) malloc (5* sizeof(BYTE));
LCD_borrar();
*decimal = 0;
for(i = 0; i < 13; i++)
{
p = 13-1-i;
*decimal = (*decimal + (cod_dec*(potencia(10,p))));
}
LCD_posicion(1,1);
LCD_entero(*decimal)
}
//cod_dec es el array de 13bytes donde tengo guardados los bytes
//decimal es donde quiero guardar mi valor resultado
//el tipo codigo es un array de 5bytes (40bits)
A ver si alguien me puede exar una mano. Muxas gracias
1Saludo, Jorge