如何在C中将二进制数组转换为十进制数

时间:2018-03-27 10:15:41

标签: c binary decimal

我在将二进制数组转换为十进制数时遇到困难:

bin[8] = {10,00,00,10};

我希望将此数组元素的等效值作为十进制数,即130

2 个答案:

答案 0 :(得分:0)

标准解决方案如下:

int f(char s[])
{
    int n = 0;
    int i;

    for (i = 0; i < 8; ++i) {
        n <<= 1;
        n += s[i] - '0';
    }

    return n;
}

答案 1 :(得分:0)

我认为您可以遵循以下代码:

int bin_to_dec(char *src, int bits){
    int i, n, sum = 0;
    for (i = 0; i < bits; i++) {
        n = *(src + i) - '0';
        sum += (n * (1 << (bits - (i + 1))));
    }
    return sum;
}