二进制数组转10进制 C语言
时间: 2023-09-06 10:12:48 浏览: 41
可以使用以下代码将二进制数组转换为十进制数:
```c
#include <stdio.h>
int binToDec(int bin[], int size) {
int dec = 0;
int base = 1;
for (int i = size - 1; i >= 0; i--) {
if (bin[i] == 1) {
dec += base;
}
base *= 2;
}
return dec;
}
int main() {
int binary[] = {1, 0, 1, 1, 0, 1};
int size = sizeof(binary) / sizeof(binary[0]);
int decimal = binToDec(binary, size);
printf("Binary: ");
for (int i = 0; i < size; i++) {
printf("%d", binary[i]);
}
printf("\nDecimal: %d\n", decimal);
return 0;
}
```
这里的 `binToDec` 函数接受两个参数:一个二进制数组和其大小。它通过迭代二进制数组并使用基数来计算十进制值。最后,它返回十进制值。在主函数中,我们定义一个二进制数组,然后将其传递给 `binToDec` 函数。最后,我们打印出结果。
相关问题
二进制数组转十进制 C语言
下面是一个将二进制数组转换为十进制的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` 函数进行转换。最后,我们打印出转换后的十进制值。
c语言2进制数组转10进制
对于将C语言中的二进制数组转换为十进制,可以使用以下方法:
1. 首先需要明确二进制数组的每个元素所代表的二进制位数,例如8位或16位。
2. 然后将每个元素的二进制位数转换为十进制数值,例如8位二进制数11111111转换为十进制数值为255。
3. 最后将每个元素的十进制数值相加即可得到整个二进制数组的十进制数值。
下面是一个示例代码,将一个8位二进制数组转换为十进制数值:
```
#include <stdio.h>
#include <stdlib.h>
typedef unsigned char UChar;
UChar binaryData[8] = {1, 0, 1, 0, 1, 1, 0, 0};
int main(){
int decimalValue = 0;
for(int i = 0; i < sizeof(binaryData); i++){
decimalValue += binaryData[i] * (1 << (sizeof(binaryData) - i - 1));
}
printf("Decimal value is %d.\n", decimalValue);
return 0;
}
```