c语言 中ascii码转16进制函数
时间: 2023-09-04 10:16:18 浏览: 301
在C语言中,可以使用sprintf函数将ASCII码转换为16进制字符串。下面是一个示例代码:
```c
#include <stdio.h>
#include <string.h>
void ascii_to_hex(char* str, char* hex)
{
int i = 0;
while (str[i])
{
sprintf(&hex[i*2], "%02X", str[i]);
i++;
}
}
int main()
{
char str[] = "Hello World!";
char hex[2*strlen(str)+1];
ascii_to_hex(str, hex);
printf("%s\n", hex);
return 0;
}
```
这段代码将字符串"Hello World!"转换为16进制字符串,输出结果为"48656C6C6F20576F726C6421"。其中,sprintf函数的格式化字符串"%02X"表示输出两个字符的16进制数,并且不足两位时前面补零。
相关问题
C语言中ASCII码的十六进制转整型十进制代码
以下是将ASCII码的十六进制转换为整型十进制的C语言代码:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
char hex[3];
int decimal;
printf("Enter a hexadecimal number: ");
scanf("%s", hex);
// Convert hexadecimal to decimal
decimal = (int) strtol(hex, NULL, 16);
printf("The decimal equivalent of %s is %d\n", hex, decimal);
return 0;
}
```
该程序首先要求用户输入一个十六进制数,然后使用`strtol()`函数将其转换为整型十进制数。最后,程序输出转换后的结果。
c语言 中16进制转ascii码函数
以下是一个简单的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字符串并将其打印到屏幕上。
阅读全文