“12AB”转换为0x12、0xAB
QByteArray SlaveThread::StringToACCI(QByteArray& arr)
{
int size = arr.size();
QByteArray arrRtn;
for (int i=0; i<size; i+=2)
{
char uhr = arr.at(i);
if (uhr >= 'a')
{
uhr = uhr - 'a' + 0x0A;
}
else if (uhr >= 'A')
{
uhr = uhr - 'A' + 0x0A;
}
else
{
uhr -= '0';
}
uhr <<= 4;
uhr &= 0xF0;
if (i+1 >= size)
{
arrRtn.append(uhr);
break;
}
char uhr2 = arr.at(i+1);
if (uhr2 >= 'a')
{
uhr2 = uhr2 - 'a' + 0x0A;
}
else if (uhr2 >= 'A')
{
uhr2 = uhr2 - 'A' + 0x0A;
}
else
{
uhr2 -= '0';
}
uhr |= uhr2;
arrRtn.append(uhr);
}
return arrRtn;
}
0x12、0xAB转换为“12AB”
QString MainWindow::ACCIToString(QByteArray& arr)
{
QString strRtn;
int size = arr.size();
for (int i=0; i<size; i++)
{
uchar uhr = arr[i];
uchar uhr2 = uhr & 0x0F;
uhr >>= 4;
uhr &= 0x0F;
if (uhr >= 0x0A)
{
uhr = uhr + 'A' - 0x0A;
}
else
{
uhr += '0';
}
strRtn.append(uhr);
if (uhr2 >= 0x0A)
{
uhr2 = uhr2 + 'A' - 0x0A;
}
else
{
uhr2 += '0';
}
strRtn.append(uhr2);
}
return strRtn;
}