703
社区成员
发帖
与我相关
我的任务
分享
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;
}
注意释放返回的数据缓冲区。