我在将二进制数组转换为十进制数时遇到困难:
bin[8] = {10,00,00,10};
我希望将此数组元素的等效值作为十进制数,即130
。
答案 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;
}