vc中把字符串转换成16进制数的函数(如'7F'->0x7F)

/*------------------------------------------------------------  
   
      函数名   :   TransData(CString   InStr,   PUCHAR   OutStr)  
   
      功     能   :   将字符串转换成十六进制数据  
   
      参     数   :   CString   InStr   [in]   输入字符串  
   
      PUCHAR   OutStr   [out]   输出转换后数据的指针  
   
      返回值   :   BOOL,正确返回TRUE,错误返回FALSE  
   
  ------------------------------------------------------------*/  
  BOOL   TransData(CString   InStr,   PUCHAR   OutStr)  
  {  
  UINT                 i   =   0,   j   =   0;  
  UINT       len   =   0;  
  UCHAR               Str[KEY_LEN   *   2];  
   
  len   =   InStr.GetLength();  
   
  if   ((len   %   2)   !=   0)  
  {  
  MessageBox("请按要求输入!",   "错误",   MB_OK   |   MB_ICONERROR);  
  return   FALSE;  
  }  
   
  memset(OutStr,   0,   sizeof(UCHAR[KEY_LEN]));  
  memset(Str,   0,   sizeof(UCHAR[KEY_LEN   *   2]));  
  strcpy((char*)(Str),   InStr.GetBuffer(0));  
  InStr.ReleaseBuffer();  
   
  for(i   =   0;   i   <   len;   i++)  
  {  
  if   ((Str[i]   >   47)   &&   (Str[i]   <   58))  
  {  
  Str[i]   -=   48;  
  }  
  else   if   ((Str[i]   >   64)   &&   (Str[i]   <   71))  
  {  
  Str[i]   -=   55;  
  }  
  else   if   ((Str[i]   >   96)   &&   (Str[i]   <   103))  
  {  
  Str[i]   -=   87;  
  }  
  else  
  {  
  MessageBox("数据格式错误!",   "错误",   MB_OK   |   MB_ICONERROR);  
  return   FALSE;  
  }  
  }  
   
  i   =   0;  
  while(i   <   len)  
  {   //   转换  
  Str[j]   =   Str[i]   *   16   +   Str[i   +   1];  
  i   +=   2;  
  j++;  
  }   

 

 

更多技术文章请参看施昌权的个人网站: http://www.joyvc.cn

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值