c语言 中16进制转ascii码函数
时间: 2023-09-04 19:16:31 浏览: 251
以下是一个简单的C语言函数,将16进制数转换为ASCII码:
```c
#include <stdio.h>
void hex_to_ascii(char* hex_string, char* ascii_string, int length) {
int i;
for (i = 0; i < length; i += 2) {
sscanf(hex_string+i, "%2hhx", ascii_string+i/2);
}
ascii_string[length/2] = '\0';
}
int main() {
char hex_string[] = "68656c6c6f"; // "hello" in hex
char ascii_string[6];
hex_to_ascii(hex_string, ascii_string, 10);
printf("Hex string: %s\n", hex_string);
printf("ASCII string: %s\n", ascii_string);
return 0;
}
```
该函数将一个长度为length的16进制字符串hex_string转换为ASCII字符串ascii_string。函数使用sscanf函数将每两个字符转换为一个ASCII字符,并将结果存储在ascii_string中。
在上面的示例中,hex_string为“hello”的16进制表示形式,“68656c6c6f”。函数将其转换为ASCII字符串并将其打印到屏幕上。
阅读全文