16进制编码与字符编码的相互转化

1、16进制编码转化为字符编码

[cpp]  view plain  copy
  1. #include "stdafx.h"  
  2. #include   
  3. using namespace std;  
  4.   
  5. int _tmain(int argc, _TCHAR* argv[])  
  6. {  
  7.     // 待输出的字符串(16进制编码表示)  
  8.     char sztext[1024] = "\x63\x2B\x2B\xCD\xF8\xC2\xE7\xB1\xE0\xB3\xCC\xA3\xA1";  
  9.     int nRead = strlen(sztext);  
  10.     // 存储还原后的字符串  
  11.     char sz2[1024] = "";  
  12.     for (int i = 0;i < nRead;++i)  
  13.     {  
  14.         // 将16进制编码还原字符串  
  15.         if(sztext[i] < 0)  
  16.             sz2[i] = sztext[i] - 256;  
  17.         else   
  18.             sz2[i] = sztext[i];  
  19.     }  
  20.     // 输出还原后的字符串  
  21.     printf("%s\n",sz2);  
  22.   
  23.     return 0;  
  24. }  

2、字符编码转化为16进制编码

[cpp]  view plain  copy
  1. #include "stdafx.h"  
  2. #include   
  3. using namespace std;  
  4.   
  5. int _tmain(int argc, _TCHAR* argv[])  
  6. {  
  7.     char sztext[1024] = "c++网络编程!";//  
  8.     int nRead = strlen(sztext);  
  9.   
  10.     char sz2[1024] = "";  
  11.     for (int i = 0;i < nRead;++i)  
  12.     {  
  13.         int nind = 0;  
  14.         // 将字符编码转转换为16进制编码  
  15.         if(sztext[i] < 0)  
  16.             nind = sztext[i] + 256;  
  17.         else  
  18.             nind = sztext[i];  
  19.   
  20.         char szTemp[10]="";  
  21.         // 16进制用小写表示,格式化串用“%02x”  
  22.         // 16进制用大写表示,格式化串用“%02X”  
  23.         sprintf(szTemp,"%02X ",nind);  
  24.         strcat(sz2,szTemp);  
  25.     }  
  26.     printf("%s\n",sz2);  
  27.   
  28.     return 0;  
  29. }  

你可能感兴趣的:(linuxC/C++编程)