|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
x
这是一个我写的学习CRC的小程序,是按照原理逐BIT操作的,但是结果不正确,正确结果是D03A,我无法得到。
多项式是X16+X12+X5+1
int main(){
char x0;
char x1;
char str[100]={0};
unsigned short reg,x3,tmp,x2;
strcpy(str,"FF03C021040300070D0306");
x1=strlen(str);
reg=0xFFFF;
getchar(x0);
for(x2=0;x2 <x1;x2++){
if(str[x2] <58) x3=str[x2]-48;
else x3=str[x2]-55;
for(x0=0;x0 <4;x0++){
if( (reg^(x3 < <12))&0x8000 ) {reg < <=1;reg=reg^0x8408;}
else reg < <=1;
x3 < <=1;
}
printf("\nREG: %x LEN: %u",reg,x2);
}
getchar(x0);
return 0;
} |
|