現在有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進制資料不是回傳字串,請問怎么實作?
uj5u.com熱心網友回復:
是要把十六進制字串轉換成整型陣列嗎?從字串一次讀出字符然后轉換成十進制就行了uj5u.com熱心網友回復:
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;
}
注意釋放回傳的資料緩沖區。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/74394.html
