二进制数组转10进制 C语言
时间: 2023-09-06 08:12:48 浏览: 49
可以使用以下代码将二进制数组转换为十进制数:
```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语言16进制数组转2进制数组的代码
以下是将16进制数组转换为2进制数组的C语言代码:
```c
#include <stdio.h>
#include <stdlib.h>
void hexToBin(unsigned char *hexArray, int hexLength, unsigned char *binArray) {
int i, j;
for (i = 0; i < hexLength; i++) {
for (j = 0; j < 8; j++) {
binArray[i*8+j] = (hexArray[i] >> (7-j)) & 1;
}
}
}
int main() {
unsigned char hexArray[] = {0x1A, 0xB3, 0x2F};
int hexLength = sizeof(hexArray) / sizeof(hexArray[0]);
int binLength = hexLength * 8;
unsigned char *binArray = malloc(binLength * sizeof(unsigned char));
hexToBin(hexArray, hexLength, binArray);
printf("Hex Array: ");
for (int i = 0; i < hexLength; i++) {
printf("%02X ", hexArray[i]);
}
printf("\n");
printf("Bin Array: ");
for (int i = 0; i < binLength; i++) {
printf("%d", binArray[i]);
}
printf("\n");
free(binArray);
return 0;
}
```
这个程序会将16进制数组 `{0x1A, 0xB3, 0x2F}` 转换为二进制数组 `{00011010, 10110011, 00101111}`。
阅读全文