二进制数组转10进制 C语言
时间: 2023-09-06 15:13:39 浏览: 230
将二进制数组转换为十进制数的方法是将每个二进制位乘以其对应的权值,然后将结果相加。例如,对于二进制数组 `binary[] = {1, 0, 1, 0, 1}`,其对应的十进制数为 `1*2^4 + 0*2^3 + 1*2^2 + 0*2^1 + 1*2^0 = 21`。以下是一个将二进制数组转换为十进制的 C 语言函数的示例代码:
```c
#include <stdio.h>
#include <math.h>
int binaryToDecimal(int binary[], int size) {
int decimal = 0;
for (int i = 0; i < size; i++) {
decimal += binary[i] * pow(2, size - i - 1);
}
return decimal;
}
int main() {
int binary[] = {1, 0, 1, 0, 1};
int size = sizeof(binary) / sizeof(binary[0]);
int decimal = binaryToDecimal(binary, size);
printf("%d\n", decimal); // Output: 21
return 0;
}
```
该函数 `binaryToDecimal` 接受两个参数:一个二进制数组和其大小。它使用 `pow` 函数计算每个二进制位的权值,并将结果相加以得到十进制数。在 `main` 函数中,我们定义一个二进制数组,计算其大小并将其传递给 `binaryToDecimal` 函数,然后打印结果。
阅读全文