Hola, estoy desarrollando un pequeño firmware para mi Arduino Mega y necesito convertir un array de X tamaño binario a un número decimal.
Esta es la función que he desarrollado:
int binToDec(int orig[], int tam){
int acum = 0, pot;
double aux;
for (int i = (tam-1); i >= 0; i--){
if (orig[i] == 1){
pot = (tam-1)-i;
aux = orig[i]*pow(2,pot);
}
else{
aux = 0;
}
acum += int(aux);
pot = 0;
aux = 0;
}//for
return acum;
}//binToDec
Los números del '0000' (0) al '0011' (3) los convierte perfectamente, a partir de ahí empieza a quedarse con una unidad.
Gracias por vuestra ayuda.