CRC8// x8+x2+x+1
自己创建一个函数
eg:
QString XX::returnCRC8(QString strData){
QByteArray data = QByteArray::fromHex(strData.toLocal8Bit());
int size=data.size();
char *pArr = data.data();
uint8_t crc = 0x00;
uint8_t poly = 0x07;
int bit;
while (size–)
{
crc ^= *pArr++;
for (bit = 0; bit < 8; bit++)
{
if (crc & 0x80)
{
crc = (crc << 1) ^ poly;
}
else
{
crc <<= 1;
}
}
}
qDebug()<<“2466”<<crc;
int getnum=(int)crc;
return QString::number(getnum,16);
}
就可以了
CRC16(标准)注意传入数据类型格式
quint16 XX::getCrc(const QByteArray &data)
{
//
quint16 crc = 0xffff;
for(int i=0; i<data.length(); i++)
{
// step 1
crc = crc ^ (unsigned char)data.at(i);
// step 2
for(int j=0; j<8; j++)
{
// step 3
quint16 temp = crc & 0x01;
crc = crc >> 1;
if(temp == 1){
crc = crc ^ 0xA001;
}
}
}
return crc;
}
直接粘贴复制可以用
还希望多收藏点赞