C++ 返回十六进制数据

wh晓晗 2016-07-07 02:21:29
现在有16进制数据 str="B5 62 06 00 14 00 01 00 00 00 D0 08 00 00 00 C2 01 00 07 00 03 00 00 00 00 00 C0 7E",
调用一个函数就返回这些16进制数据不是返回字符串,请问怎么实现?
...全文
1769 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
FASM_FASM 2016-07-07
  • 打赏
  • 举报
回复

unsigned char* __fastcall StrToHex(const AnsiString& hexStr)
{
    unsigned char* result = new unsigned char(hexStr.Length() / 2);
    unsigned char* pBuf = result;

    char* pData = hexStr.UpperCase().c_str();

    for(int i = 0; i < hexStr.Length(); i++)
    {
       unsigned char val = pData[i] - '0';

       if(val > 0xf)
         val -= 7;

       if(i % 2 == 0)
       {
          *pBuf = val;
          *pBuf <<= 4;
       }
       else
       {
           *pBuf |= val;
           pBuf++;
       }
    }

    return result;
}
注意释放返回的数据缓冲区。
dataxdata 2016-07-07
  • 打赏
  • 举报
回复
是要把十六进制字符串转换成整型数组吗?从字符串一次读出字符然后转换成十进制就行了

703

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder ActiveX/COM/DCOM
社区管理员
  • ActiveX/COM/DCOM社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧