1.效果
QString strMsg = "01 02 1a ff010203f";
QByteArray arr = hexStr2ByteArray(strMsg);
QString strText = byteArray2HexStr(arr);
qDebug()<<"toByteArray:"<<arr;
qDebug()<<"toString:"<<strText;
toByteArray: "\x01\x02\x1A\xFF\x01\x02\x03\x0F"
toString: "01 02 1A FF 01 02 03 0F"
2.代码
QByteArray hexStr2ByteArray(QString str)
{
QByteArray byteArr;
str = str.replace(" ","");
if (0 != (str.size() % 2)) {
str.insert(str.size() - 1,'0');
}
for (int nIndex = 0; nIndex < str.size(); nIndex += 2) {
char ch = QString(str[nIndex]).toInt(nullptr,16) * 16 + QString(str[nIndex + 1]).toInt(nullptr,16);
byteArr.append(ch);
}
return byteArr;
}
QString byteArray2HexStr(QByteArray byteArr)
{
QString str = byteArr.toHex().toUpper();
for (int nIndex = 3; nIndex < str.size();nIndex += 3) {
str = str.insert(nIndex-1," ");
}
return str;
}