zoukankan      html  css  js  c++  java
  • 16进制字符串和字节数组的转换

    为了方便地在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;
    }

     

     

     

  • 相关阅读:
    Docker管理应用数据
    Docker Swarm mode
    Docker Compose file
    Docker Compose 多容器应用
    MySQL中ORDER BY与LIMIT一起使用(有坑)
    Docker for Java Developers
    Nifi 模板
    Nifi InvokeHttp processor
    Mac上连接nifi
    前端开发环境webstorm搭建
  • 原文地址:https://www.cnblogs.com/huhu0013/p/2953864.html
Copyright © 2011-2022 走看看