博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
16进制字符串和字节数组的转换
阅读量:7081 次
发布时间:2019-06-28

本文共 998 字,大约阅读时间需要 3 分钟。

为了方便地在16进制字符串和字节数组之间进行转换,今天询问了同事,他给了我下面这几个函数 

 

// ASCII码转为该码十六进制字符

// 输入参数: pDataIn:  需要转换的数据
//           iLenIn:   需要转换数据的长度
// 输出参数: pDataOut: 转换后的数据
void HexCharToAscii(const UCHAR *pDataIn, int iLenIn, CString &pDataOut)
{
 CString strTemp(_T(""));

 for (int i = 0; i < iLenIn; i++) 

 { 
  strTemp.Format(_T("%02X"), pDataIn[i]);
  pDataOut += strTemp;
 }
}

// 十六进制字符转为该码ASCII码
// 输入参数: str:  需要转换的数据         
// 输出参数: cHex: 转换后的数据
int AsciiToHex(CString str,UCHAR *cHex)
{
 str.Trim(' ');
 CString strTemp(_T(""));
 DWORD dwNewSize = 0;
 for(int i = 0, j = 0; i < str.GetLength(); i +=2, j++)
 {
  strTemp = str.Mid(i, 2);
  cHex[j] = (UCHAR)_tcstoul(strTemp, NULL, 16);
  dwNewSize++;
 } 
 return dwNewSize;//返回数组中的长度
}

 

// 十六进制字符转为该码ASCII码

// 输入参数: str:  需要转换的数据         
// 输出参数: cHex: 转换后的数据
int AsciiToHex1(UCHAR* str,int inlen,UCHAR *cHex)
{
 TCHAR strTemp[2];
 DWORD dwNewSize = 0;
 for(int i = 0, j = 0; i < inlen; i +=2, j++)
 {
  strTemp[0] = str[i];
  i++;
  strTemp[1] =str[i];
  cHex[j] = (UCHAR)_tcstoul(strTemp, NULL, 16);
  dwNewSize++;
 } 
 return 0;
}

 

 

 

转载地址:http://wwlml.baihongyu.com/

你可能感兴趣的文章
CMD命令进入文件夹
查看>>
PostgreSQL存储过程<转>
查看>>
Angular企业级开发(8)-控制器的作用域
查看>>
BZOJ 4538: [Hnoi2016]网络 [整体二分]
查看>>
从XML文件乱码问题,探寻其背后的原理
查看>>
BSD Socket~TCP~Example Code
查看>>
Spring配置文件总结
查看>>
CodeForces 388A Fox and Box Accumulation (模拟)
查看>>
bzoj 4830: [Hnoi2017]抛硬币 [范德蒙德卷积 扩展lucas]
查看>>
MySQL具体解释(21)------------缓存參数优化
查看>>
8款基于Jquery的WEB前端动画特效
查看>>
客户端接收发邮件时,出现“无法连接到服务器
查看>>
关于Unity中UI中的Mask组件、Text组件和布局
查看>>
nodemon是个好东西
查看>>
C/C++拾遗(一):关于数组的指针和数组元素首地址的一道经典题
查看>>
《AndroidStudio每日一贴》5. 怎样高速查看某个方法/注解的定义?
查看>>
Gradle入门学习---认识buildeTypes和dependencies
查看>>
iOS开发 - 二维码的生成与读取
查看>>
.Net中的缓存依赖配置
查看>>
让你提前认识软件开发(14):程序中的算法
查看>>