как вывести правильно массив перевода из 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), но не получается. Помогите пожалуйста! Только не бейте.


Ответы (0 шт):