QT 制作一个CRC16校验的函数

在QT项目中添加一个CRC校验,判断数据是否正确:
博主这里使用CRC16 来举例子

quint16 MainWindow::CalcCRC16(quint8 *SC_Buffer, quint8 SC_Amount)//生成校验码
{
    quint16 Crc;
    quint8 n, m, x;

    Crc= 0xFFFF;//16个1
    m= SC_Amount;//拿到长度
    x= 0;

    while(m>0){
        Crc ^= SC_Buffer[x];//第一个数据帧异或
        for(n=0; n<8; n++){//因为是quint8是8位数据,所以循环8次
            if(Crc & 1){//移出位为1,就进行异或
                Crc >>= 1;
                Crc ^= 0xA001;
            }else//为0继续移出
                Crc >>= 1;
        }
        m--;//下一个数据帧
        x++;
    }

    x = Crc>>8;//拿到高8位
    Crc <<= 8;//剩下低8位
    Crc &= 0xff00;//低位清0
    Crc |= x;//实现高低位位置互换

    return Crc;
}

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_43491568/article/details/103022456
————————————————

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值