十六进制数组转字符串
时间: 2023-10-19 21:07:08 浏览: 147
可以使用Python中的bytes.fromhex()方法将十六进制数组转换为字节串,再使用decode()方法将字节串转换为字符串。示例代码如下:
```
hex_arr = ['68', '65', '6c', '6c', '6f', '20', '77', '6f', '72', '6c', '64']
byte_str = bytes.fromhex(''.join(hex_arr))
str = byte_str.decode('utf-8')
print(str)
```
输出结果为:hello world
相关问题
十六进制数组转字符串 python
可以使用Python中的`binascii`模块来实现:
```python
import binascii
hex_array = ['48', '65', '6c', '6c', '6f', '20', '57', '6f', '72', '6c', '64']
byte_array = bytearray.fromhex(''.join(hex_array))
string = byte_array.decode('utf-8')
print(string) # Hello World
```
首先将十六进制数组转换为字节(byte)数组,然后使用`decode`方法将字节数组转换为字符串。
C语言实现十六进制数组转字符串
可以使用sprintf函数将十六进制数组转化为字符串。具体实现如下:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
unsigned char hex_arr[] = {0xAB, 0xCD, 0xEF}; // 十六进制数组
int hex_len = sizeof(hex_arr)/sizeof(hex_arr[0]); // 数组长度
char str[2*hex_len + 1]; // 字符串数组
for (int i = 0; i < hex_len; i++) {
sprintf(str + 2*i, "%02X", hex_arr[i]); // 将十六进制数转化为两位十六进制字符串
}
str[2*hex_len] = '\0'; // 字符串结尾
printf("Hex Array: ");
for (int i = 0; i < hex_len; i++) {
printf("%02X ", hex_arr[i]);
}
printf("\n");
printf("String: %s\n", str);
return 0;
}
```
输出结果如下:
```
Hex Array: AB CD EF
String: ABCDEF
```
其中,sprintf函数的第一个参数为目标字符串,第二个参数为字符串格式,%02X表示输出两位十六进制大写字母,第三个参数为需要转化的十六进制数。
阅读全文