l4568527193 发表于 2013-12-18 17:26:44

crc校验中的问题,求大神指点~~~~~~~~~~~

uint crc16l(uchar *ptr,uchar len)      // ptr 为数据指针,len 为数据长度
{
        uchar i;
        while(len--)
        {
                for(i=0x80; i!=0; i>>=1)
                {
                if((crc&0x8000)!=0)
                        {
                                crc<<=1;
                                crc^=0x1021;
                        }             
                        else crc<<=1;
                        if((*ptr&i)!=0)
                        crc^=0x1021;               
                }
        ptr++;
        }
        return(crc);
}

l4568527193 发表于 2013-12-18 17:28:34

这里面的有判断crc最高位是否为1(if((crc&0x8000)!=0)),这个判断有什么用?当最高位为1了以后,再执行左移一位那不就溢出了么?其他的都能明白,就这里需要大神帮忙,谢谢了

HadesHe 发表于 2013-12-18 20:13:55

为什么你的ID没有被封

l4568527193 发表于 2013-12-18 21:03:02

HadesHe 发表于 2013-12-18 20:13
为什么你的ID没有被封

什么意思
页: [1]
查看完整版本: crc校验中的问题,求大神指点~~~~~~~~~~~