48 45 4C 4C 4F通过算法得到二进制再输出字符串
时间: 2023-07-26 20:33:06 浏览: 73
可以使用以下代码将16进制ASCII码表示的字符串转换为二进制字符串,并输出对应的字符串:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main() {
char hex_str[] = "48 45 4C 4C 4F";
char *endptr;
char str[6];
char binary_str[40];
char *token = strtok(hex_str, " ");
while (token != NULL) {
str[0] = strtol(token, &endptr, 16);
str[1] = '\0';
for (int i = 0; i < 8; i++) {
binary_str[i + strlen(binary_str)] = ((str[0] & (1 << (7 - i))) ? '1' : '0');
}
token = strtok(NULL, " ");
}
printf("%s\n", binary_str);
char output_str[6];
for (int i = 0; i < 5; i++) {
char tmp[9];
strncpy(tmp, binary_str + (i * 8), 8);
tmp[8] = '\0';
output_str[i] = strtol(tmp, NULL, 2);
}
output_str[5] = '\0';
printf("%s\n", output_str);
return 0;
}
```
这段代码将输入的16进制ASCII码字符串按照空格分隔开来,然后使用strtol函数将每个16进制数转换为相应的ASCII字符,并且将每个字符转换为8位二进制字符串。最后,将这些二进制字符串连接在一起,输出最终的二进制字符串。接着,将这个二进制字符串按照8位一组分割,每组转换为对应的ASCII字符,并输出最终的字符串"HELLO"。
阅读全文