как вывести правильно массив перевода из 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 (b = 0; b < n; b++) {
rem[b] = a[i] % 10;
decimal_val = decimal_val + (rem[b] * base);
a[i] = a[i] / 10;
base = base * 2;
}
printf("%d \n", decimal_val);
}
ввод: 4 1010 вывод должен быть 10, но выводит (- 12), но не получается. Помогите пожалуйста! Только не бейте.