c语言16进制数组转10进制数组函数
时间: 2023-12-05 22:39:45 浏览: 188
以下是一个将C语言中的16进制数组转换为10进制数组的函数示例:
```c
void hex2dec(int *hexArray, int *decArray, int len) {
int i;
for (i = 0; i < len; i++) {
decArray[i] = (int) strtol(hexArray[i], NULL, 16);
}
}
```
其中,hexArray是输入的16进制数组,decArray是输出的10进制数组,len是数组的长度。函数使用了strtol()函数将16进制字符串转换为10进制整数。
相关问题
c语言 16进制数组转string
以下是将16进制数组转换为字符串的C代码:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
char* hex_to_str(unsigned char* hex_array, size_t len) {
char* str = (char*)malloc(len * 2 + 1);
int i, j;
for (i = 0, j = 0; i < len; i++, j += 2) {
sprintf(str + j, "%02x", hex_array[i]);
}
str[len * 2] = '\0';
return str;
}
int main() {
unsigned char hex_array[] = {0x48, 0x65, 0x6c, 0x6c, 0x6f, 0x20, 0x57, 0x6f, 0x72, 0x6c, 0x64};
size_t len = sizeof(hex_array) / sizeof(hex_array[0]);
char* str = hex_to_str(hex_array, len);
printf("%s\n", str);
free(str);
return 0;
}
```
在此示例中,我们将16进制数组转换为字符串,并将其打印到控制台上。我们首先定义了一个名为“hex_to_str”的函数,该函数接受一个无符号字符指针和一个长度参数,并返回一个字符指针,该指针指向转换后的字符串。在函数中,我们使用sprintf函数将每个字节转换为两个十六进制字符,并将其附加到输出字符串的末尾。最后,我们在字符串的末尾添加了一个空字符,并将其返回。
在主函数中,我们定义了一个名为“hex_array”的无符号字符数组,并使用sizeof操作符计算其长度。我们调用hex_to_str函数将该数组转换为字符串,并将其打印到控制台上。最后,我们释放了分配给字符串的内存。
c语言16进制数组转2进制数组的代码
以下是将16进制数组转换为2进制数组的示例代码:
```c
#include <stdio.h>
void hexToBinary(unsigned char hex[], unsigned char binary[], int size) {
for (int i = 0; i < size; i++) {
switch (hex[i]) {
case '0':
binary[4 * i] = '0';
binary[4 * i + 1] = '0';
binary[4 * i + 2] = '0';
binary[4 * i + 3] = '0';
break;
case '1':
binary[4 * i] = '0';
binary[4 * i + 1] = '0';
binary[4 * i + 2] = '0';
binary[4 * i + 3] = '1';
break;
case '2':
binary[4 * i] = '0';
binary[4 * i + 1] = '0';
binary[4 * i + 2] = '1';
binary[4 * i + 3] = '0';
break;
case '3':
binary[4 * i] = '0';
binary[4 * i + 1] = '0';
binary[4 * i + 2] = '1';
binary[4 * i + 3] = '1';
break;
case '4':
binary[4 * i] = '0';
binary[4 * i + 1] = '1';
binary[4 * i + 2] = '0';
binary[4 * i + 3] = '0';
break;
case '5':
binary[4 * i] = '0';
binary[4 * i + 1] = '1';
binary[4 * i + 2] = '0';
binary[4 * i + 3] = '1';
break;
case '6':
binary[4 * i] = '0';
binary[4 * i + 1] = '1';
binary[4 * i + 2] = '1';
binary[4 * i + 3] = '0';
break;
case '7':
binary[4 * i] = '0';
binary[4 * i + 1] = '1';
binary[4 * i + 2] = '1';
binary[4 * i + 3] = '1';
break;
case '8':
binary[4 * i] = '1';
binary[4 * i + 1] = '0';
binary[4 * i + 2] = '0';
binary[4 * i + 3] = '0';
break;
case '9':
binary[4 * i] = '1';
binary[4 * i + 1] = '0';
binary[4 * i + 2] = '0';
binary[4 * i + 3] = '1';
break;
case 'A':
case 'a':
binary[4 * i] = '1';
binary[4 * i + 1] = '0';
binary[4 * i + 2] = '1';
binary[4 * i + 3] = '0';
break;
case 'B':
case 'b':
binary[4 * i] = '1';
binary[4 * i + 1] = '0';
binary[4 * i + 2] = '1';
binary[4 * i + 3] = '1';
break;
case 'C':
case 'c':
binary[4 * i] = '1';
binary[4 * i + 1] = '1';
binary[4 * i + 2] = '0';
binary[4 * i + 3] = '0';
break;
case 'D':
case 'd':
binary[4 * i] = '1';
binary[4 * i + 1] = '1';
binary[4 * i + 2] = '0';
binary[4 * i + 3] = '1';
break;
case 'E':
case 'e':
binary[4 * i] = '1';
binary[4 * i + 1] = '1';
binary[4 * i + 2] = '1';
binary[4 * i + 3] = '0';
break;
case 'F':
case 'f':
binary[4 * i] = '1';
binary[4 * i + 1] = '1';
binary[4 * i + 2] = '1';
binary[4 * i + 3] = '1';
break;
default:
printf("Invalid hex digit %c\n", hex[i]);
break;
}
}
}
int main() {
unsigned char hex[] = "3F";
unsigned char binary[8] = {0};
hexToBinary(hex, binary, 1);
printf("Hex: %s, Binary: %s\n", hex, binary);
return 0;
}
```
在上面的代码中,`hexToBinary` 函数接受一个16进制数组 `hex`,一个2进制数组 `binary`,以及数组的大小 `size`。它使用一个 `switch` 语句将每个16进制数字转换为相应的4位二进制数字。在主函数中,我们可以通过调用 `hexToBinary` 函数将16进制数转换为2进制数。
阅读全文
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)