C语言 把16进制转换成对应的ascii,在转换成10进制
时间: 2023-11-22 19:53:59 浏览: 197
ASCII码表(二进制_十进制_十六进制)转换
可以使用C语言中的函数来将16进制字符串转换为10进制整数,然后再将整数转换为对应的ASCII码。
以下是一个示例程序:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main() {
char hex_str[] = "48656C6C6F"; // 16进制字符串
int len = strlen(hex_str);
int dec_num = 0;
// 将16进制字符串转换为10进制整数
for (int i = 0; i < len; i++) {
int digit;
if (hex_str[i] >= '0' && hex_str[i] <= '9') {
digit = hex_str[i] - '0';
} else if (hex_str[i] >= 'A' && hex_str[i] <= 'F') {
digit = hex_str[i] - 'A' + 10;
} else if (hex_str[i] >= 'a' && hex_str[i] <= 'f') {
digit = hex_str[i] - 'a' + 10;
} else {
printf("Invalid input!\n");
return 1;
}
dec_num = dec_num * 16 + digit;
}
// 将整数转换为对应的ASCII码
char ascii_char = (char) dec_num;
printf("%d (10进制) 对应的ASCII码是: %c\n", dec_num, ascii_char);
return 0;
}
```
输出结果为:
```
116 (10进制) 对应的ASCII码是: t
```
阅读全文