搜索
您的当前位置:首页正文

如何在Vc中编写CRC校验程序

2021-04-21 来源:步旅网


以上程序在Win98,VB6下调试通过。

unsigned char CRC16Lo,CRC16Hi;

unsigned char CL,CH ;

unsigned char SaveHi, SaveLo;

int Flag;

int i;

CRC16Lo=0xFF;;

CRC16Hi=0xFF;

CL=0x01;

CH=0xA0;

for (i=0 ; i{

CRC16Lo = CRC16Lo ^ sbuf[i]; //'每一个数据与CRC寄存器进行异或

for (Flag = 0; Flag<8; Flag++)

{

SaveHi = CRC16Hi;

SaveLo = CRC16Lo ;

CRC16Hi = CRC16Hi >> 1 ; //'高位右移一位

CRC16Lo = CRC16Lo >> 1 ; //'低位右移一位

if ((SaveHi & 0x01) == 0x01) //'如果高位字节最后一位为1

{

CRC16Lo = CRC16Lo | 0x80 ; //'则低位字节右移后前面补1

} //'否则自动补0

if ((SaveLo & 0x01) == 0x01) //'如果LSB为1,则与多项式码进行异或

{

CRC16Hi = CRC16Hi ^ CH ;

CRC16Lo = CRC16Lo ^ CL ;

}

}

}

sbuf[0] = CRC16Hi; sbuf[1] = CRC16Lo; //'CRC高位

//'CRC低位

因篇幅问题不能全部显示,请点此查看更多更全内容

Top