#include<stdio.h>
#include<string.h>
int main()
{
char z[20]="我";
char hex[100]="";
//汉字转16进制
unsigned int len=strlen(z);
int i=0;
for(;i<len;i++) //不清楚为什么打印ASCII值>=0x80的字符的16进制就会多6个f
sprintf(hex+2*i,"%x",z[i]&0xff);
printf("%s\n",hex);
//16进制转字符串
len=strlen(hex);
char tem[2]="";
for(i=0;i<len;i+=2){
memcpy(tem,hex+i,2);
sscanf(tem,"%x",z+i/2);
}
printf("%s\n",z);
}
#include<string.h>
int main()
{
char z[20]="我";
char hex[100]="";
//汉字转16进制
unsigned int len=strlen(z);
int i=0;
for(;i<len;i++) //不清楚为什么打印ASCII值>=0x80的字符的16进制就会多6个f
sprintf(hex+2*i,"%x",z[i]&0xff);
printf("%s\n",hex);
//16进制转字符串
len=strlen(hex);
char tem[2]="";
for(i=0;i<len;i+=2){
memcpy(tem,hex+i,2);
sscanf(tem,"%x",z+i/2);
}
printf("%s\n",z);
}