16,471
社区成员
发帖
与我相关
我的任务
分享
bool DeCombinByte(const byte *byIn, const int iSrcLen, char *szOut)
{
char *szTmp = NULL;
try
{
szTmp = new char[iSrcLen*2];
int k = 0;
for (int j = 0; j < iSrcLen; j++)
{
szTmp[k] = byIn[j] >> 4;
szTmp[k+1] = byIn[j] & 0x0F;
k += 2;
}
for (int i = 0; i < iSrcLen*2; i++)
{
if(szTmp[i] > 9)
szOut[i] = szTmp[i] + 55;
else
szOut[i] = szTmp[i] + 48;
}
delete[] szTmp;
return true;
}
catch(...)
{
ERRORMSG("DeCombinByte Exception");
if(NULL !=szTmp)
delete szTmp;
return false;
}
}
bool CombinByte(const char *szIn, BYTE *byOut, const int iilen = -1)
{
char *szTmp = NULL;
try
{
int iSrcLen = iilen;
if(iilen < 0)
iSrcLen = strlen(szIn);
szTmp = new char[iSrcLen];
for (int i = 0; i < iSrcLen; i++)
{
if (szIn[i] >= 65)
szTmp[i] = szIn[i] - 55;
else
szTmp[i] = szIn[i] - 48;
}
int k = 0;
for (int j = 0; j < iSrcLen / 2; j++)
{
byOut[j] = (BYTE)((szTmp[k] << 4) | (szTmp[k+1]));
k += 2;
}
delete[] szTmp;
return true;
}
catch(...)
{
ERRORMSG("CombinByte Exception");
if(NULL !=szTmp)
delete szTmp;
return false;
}
}