二进制数组转十进制 C语言
时间: 2023-09-06 10:11:06 浏览: 126
下面是一个将二进制数组转换为十进制的C语言代码示例:
```c
#include <stdio.h>
#include <math.h>
int binaryToDecimal(int binary[], int size) {
int decimal = 0;
int i;
for (i = 0; i < size; i++) {
decimal += binary[i] * pow(2, size - 1 - i);
}
return decimal;
}
int main() {
int binary[] = {1, 0, 1, 0, 1, 1, 0, 1}; // 二进制数组
int size = sizeof(binary) / sizeof(binary[0]); // 数组大小
int decimal = binaryToDecimal(binary, size); // 转换为十进制
printf("Decimal: %d", decimal);
return 0;
}
```
这里的 `binaryToDecimal` 函数将二进制数组作为参数,并在循环中计算每个二进制位的值,然后将其加起来得到十进制值。`pow` 函数用于计算 2 的幂次方。在 `main` 函数中,我们定义了一个二进制数组,并将其传递给 `binaryToDecimal` 函数进行转换。最后,我们打印出转换后的十进制值。
相关问题
二进制数组转10进制 C语言
将二进制数组转换为十进制数的方法是将每个二进制位乘以其对应的权值,然后将结果相加。例如,对于二进制数组 `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` 函数,然后打印结果。
二进制字符数组转换为十进制在转换为二进制字符数组 C语言
可以使用C语言中的标准库函数`atoi`和`itoa`来实现二进制字符数组和十进制之间的转换。
例如,将二进制字符数组`binary`转换为十进制数值`decimal`:
```c
char binary[] = "110101";
int decimal = atoi(binary);
```
然后再将十进制数值`decimal`转换为二进制字符数组`binary2`:
```c
char binary2[32];
itoa(decimal, binary2, 2);
```
完整的代码示例:
```c
#include <stdio.h>
#include <stdlib.h>
int main() {
char binary[] = "110101";
int decimal = atoi(binary);
printf("Decimal: %d\n", decimal);
char binary2[32];
itoa(decimal, binary2, 2);
printf("Binary: %s\n", binary2);
return 0;
}
```
输出结果:
```
Decimal: 53
Binary: 110101
```
阅读全文