Qt之异或校验

在做数据的接收时,常常要用到各种校验,异或校验最简单最实用,在Qt中自己编写一种异或校验的方法

数据背景:接收的是16进制数据16 21 37,其中前两个字节表示距离数据,后一个字节是校验位,在程序中首先把它们转化为字符串,然后再做校验,相当于是两个字符串校验,代码如下:

//求两个字符串异或
QString MainWindow::getXORresult(QString str1, QString str2)
{
    QString result;
    //字符串转QByteArray
    QByteArray bs1 = str1.toLatin1();
    QByteArray bs2 = str2.toLatin1();
    int size = bs1.size();
    int size2 = bs2.size();
    if(size != size2)
    {
        return 0;
    }
    else
    {
        for(int i=0; i<size; i++)
        {
            bs1[i] = bs1[i] ^ bs2[i];
        }
    }
    //QByteArray转字符串
    return result.prepend(bs1);
}

猜你喜欢

转载自blog.csdn.net/zong596568821xp/article/details/79183323
今日推荐