Выдает правильный ответ раз через раз перевод из 2 в 10 тичную систему. Помогите исправить ошибку
#include <stdio.h>
int main() {
char a[10000];
int c, n;
int i = 0, b = 0;
scanf_s("%d", &n);
a[0] = getchar();
for (i = 0; i < n; i++) {
a[i] = getchar() - '0';
}
int decimal_val = 0, base = 1, rem[10000];
for (i = 0; i < n; i++) {
rem[b] = a[i] % 10;
decimal_val = decimal_val + (rem[b] * base);
a[i] = a[i] / 10;
base = base * 2;
}
printf("%d", decimal_val);
}
Пожалуйста, помогите. Выдает не правильный ответ.