crc 结果不正确 ,求正确程序!!!!
#include <math.h>#include <stdio.h>
#include<string>
void CRC(char msg[],char gx[])
{
int i=0,j=0;
char c[50];
int m,n;
m=strlen(msg);
n=strlen(gx);
/*将msg的值赋给c*/
for(i=0;i<m;i++)
{
c[i]=msg[i];
}
for(i=m;i<m+n-1;i++)
{
c[i]=0;
}
for(i=0;i<m;i++)
{
if(c[i]==0) continue;
else
{
for(j=0;j<n;j++)
{
c[i+j]=c[i+j]^gx[j];
}
}
}
for(i=0;i<n-1;i++)
{
msg[m+i]=c[m+i];
}
printf("The CRC:"); /*输出循环冗余码:数组msg[m+n-1] */
for(i=0;i<m+n-1;i++)
{
printf("%c",msg[i]);
}
printf("\n");
}
void main()
{ char msg[50];
char gx[20];
printf("\ninput the message's information:\n"); /*输入二进制信息(0 ~ m-1) */
scanf("%s",msg);
printf("input the G(x)'s information:\n"); /*输入二进制生成多项式(0 ~ n-1)*/
scanf("%s",gx);
CRC(msg,gx);
}
[ 本帖最后由 小兔子慢慢 于 2010-4-17 09:41 编辑 ]