Estou tentando converter uma string binária num inteiro decimal, mas não consigo achar onde meu código está errado.
#include <stdio.h>
#include <string.h>
#include <math.h>
int main() {
int decimal = 0;
char bin[20];
printf("Escreva um numero binario: ");
scanf_s("%s", bin);
int len = strlen(bin);
for (int i = len - 1; i >= 0; i--) {
decimal =+ (bin[i] * pow(2, i)); // Multiplico o caracter da string por 2^i e somo em decimal.
}
printf("O numero binario correponde ao decimal: %d", decimal);
return 0;
}
O output está dando um valor muito maior que o esperado... Input: 01001 Output esperado: 9 Output recebido: 1506
pow)...bin[i]é uma string, sendo assim, em ASCII a letra "0" é 48 e "1" é 49.