C++数据校验之异或校验
QString checkXorH(QByteArray data)
{
QStringList strData;
QString rdata = data;
int checksum = 0;
for(int i = 0; i < rdata.size()/2; i++){
strData.append(rdata.mid(i*2,2));
}
for (int i = 0;i < rdata.size()/2;i++)
{
checksum = checksum ^ strData[i].toInt(nullptr,16);
}
strData.clear();
return QString::number(checksum,16).toUpper();
}
QString checkXord(QString data)
{
QStringList strData;
int checksum = 0;
data = data.toLatin1().toHex();
for(int i = 0; i < data.size()/2; i++){
strData.append(data.mid(i*2,2));
}
for (int i = 0;i < data.size()/2;i++)
{
checksum = checksum ^ strData[i].toInt(nullptr,16);
}
strData.clear();
return QString::number(checksum,16).toUpper();
}



