【发布时间】:2018-03-27 10:15:40
【问题描述】:
我在将二进制数组转换为十进制数时遇到困难:
bin[8] = {10,00,00,10};
我希望将此数组元素等效为十进制数,即130。
【问题讨论】:
-
您的数组包含十进制数 10 和 0。如果您需要二进制数,则需要将其表示为字符串或位数组(仅 0 或 1)。
我在将二进制数组转换为十进制数时遇到困难:
bin[8] = {10,00,00,10};
我希望将此数组元素等效为十进制数,即130。
【问题讨论】:
一个标准的解决方案是这样的:
int f(char s[])
{
int n = 0;
int i;
for (i = 0; i < 8; ++i) {
n <<= 1;
n += s[i] - '0';
}
return n;
}
【讨论】:
我认为您可以按照以下代码进行操作:
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;
}
【讨论】: