[Solucionado] De Binario a Decimal

Anoche me vi en la necesidad de pasar un número binario a decimal. Como no encontre una función que lo hiciera automaticamente, modifique un código de C que me encontre por internet para adaptarlo a Arduino. Supongo que se podrá mejorar o hacer de otra forma, pero funciona y puede que le sea de utilidad a alguien.

Gracias un saludo a todos.

unsigned int BinToInt (String Binario){
  
  char bin[9]; //Creamos un array de char

  Binario.toCharArray(bin, 9);  //Pasamos el string al array de char que hemos creado
  
  int i = 0;  //Variable para el contador
  unsigned int n = 0;  //Variable para calcular el resultado

  while ( bin[i] == '0' || bin[i] == '1' ) {
    if ( bin[i] == '0' )
      n <<= 1;
    else {
      n ^= 1;
      n <<= 1;
    }
  ++i;
  }
  
  n >>= 1;
  
  Serial.print("Final: ");
  Serial.println(n);

  return(n);

}