C语言实现二进制数转换成十进制数

将一个二进制数转换成十进制数的方法是将每一位上的数字乘以对应的权重,然后将所有结果相加。例如,二进制数1011表示的十进制数为:

1 × 2³ + 0 × 2² + 1 × 2¹ + 1 × 2⁰ = 8 + 0 + 2 + 1 = 11

以下是C语言实现将一个二进制数转换成十进制数的代码:

#include <stdio.h>
#include <math.h>

int binaryToDecimal(int binary) {
    int decimal = 0;
    int i = 0;

    while (binary != 0) {
        int digit = binary % 10;
        decimal += digit * pow(2, i);
        ++i;
        binary /= 10;
    }

    return decimal;
}

int main() {
    int binary = 1011;
    int decimal = binaryToDecimal(binary);

    printf("%d in binary is %d in decimal\n", binary, decimal);

    return 0;
}

以上代码的输出结果是:

1011 in binary is 11 in decimal