Qt之異或校驗
阿新 • • 發佈:2019-02-20
在做資料的接收時,常常要用到各種校驗,異或校驗最簡單最實用,在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); }