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

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

[cpp]  view plain  copy
  1. #include "stdafx.h"  
  2. #include <iostream>  
  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 <iostream>  
  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. }  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值