int n_decimal = 0;
unsigned long n_binario = 1001; // Uso adequado até o número 1023.

void setup() {
  Serial.begin(115200);

  n_decimal = converte_para_decimal(n_binario);

  Serial.print("Binário: ");
  Serial.print(n_binario);
  Serial.print("   Decimal: ");
  Serial.println(n_decimal);
}

int converte_para_decimal(unsigned long binario) {
  int decimal = 0;
  int base = 1;  // 2^0

  while (binario > 0) {
    int last_digit = binario % 10; // Obtém o último dígito binário
    binario = binario / 10;        // Remove o último dígito binário
    decimal += last_digit * base;  // Adiciona ao decimal a contribuição do dígito binário atual
    base = base * 2;               // Incrementa a base (2^n)
  }

  return decimal;
}

void loop() {
  // Código vazio
}