16进制数字转字符 C++
时间: 2023-09-03 09:15:40 浏览: 78
将16进制数字转换为字符,需要使用C语言中的函数,例如:
```c
#include <stdio.h>
int main() {
char hex[] = "48656c6c6f20576f726c64";
char str[100];
int i, j = 0;
for (i = 0; hex[i] != '\0'; i += 2) {
int num = 0;
if (hex[i] >= '0' && hex[i] <= '9') {
num = hex[i] - '0';
} else if (hex[i] >= 'a' && hex[i] <= 'f') {
num = hex[i] - 'a' + 10;
} else if (hex[i] >= 'A' && hex[i] <= 'F') {
num = hex[i] - 'A' + 10;
}
num *= 16;
if (hex[i+1] >= '0' && hex[i+1] <= '9') {
num += hex[i+1] - '0';
} else if (hex[i+1] >= 'a' && hex[i+1] <= 'f') {
num += hex[i+1] - 'a' + 10;
} else if (hex[i+1] >= 'A' && hex[i+1] <= 'F') {
num += hex[i+1] - 'A' + 10;
}
str[j] = (char)num;
j++;
}
str[j] = '\0';
printf("Hexadecimal: %s\n", hex);
printf("String: %s\n", str);
return 0;
}
```
该程序将16进制字符串转换为ASCII字符串。通过循环遍历16进制字符串中的每个字符,将其转换为十进制数字,然后将其转换为字符。最后,将所有字符组合成一个新的字符串。
阅读全文