【问题标题】:How to convert binary array to a decimal number in C如何在C中将二进制数组转换为十进制数
【发布时间】:2018-03-27 10:15:40
【问题描述】:

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

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

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

【问题讨论】:

  • 您的数组包含十进制数 10 和 0。如果您需要二进制数,则需要将其表示为字符串或位数组(仅 0 或 1)。

标签: c binary decimal


【解决方案1】:

一个标准的解决方案是这样的:

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

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

    return n;
}

【讨论】:

    【解决方案2】:

    我认为您可以按照以下代码进行操作:

    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;
    }
    

    【讨论】:

      猜你喜欢
      • 2020-09-10
      • 2020-09-08
      • 2017-02-18
      • 2020-10-27
      • 1970-01-01
      • 2023-02-08
      • 2014-04-21
      • 2010-10-03
      • 1970-01-01
      相关资源
      最近更新 更多