📄 1.c
字号:
#include<stdio.h>
#define N 50
main()
{
int M[N],G[N],a[6];
int i,m,k;
printf("请输入六位的G(X)(=6):");
for(i=0;i<6;i++)
scanf("%d",&G[i]);
printf("\n请输入要传输的码字长度k:(k<50)");
scanf("%d",&k);
printf("\n请输入要传输的码字:");
for(i=0;i<k;i++)
{scanf("%d",&M[i]);
}
M[k]=0;
M[k+1]=0;
M[k+2]=0;
M[k+3]=0;
M[k+4]=0;
printf("\n补0后的M(x)为:");
for(i=0;i<k+5;i++)
printf("%d",M[i]);
putchar('\n');
for(i=0;i<6;i++) /*对a[]进行初始化*/
{a[i]=M[i];
a[i]=a[i]^G[i];
}
printf("\n每次相除以后的余数为:\n");
for(i=0;i<6;i++)
printf("%d",a[i]);
putchar('\n');
for(m=6;m<k+4;m++) /*移位操作*/
{while(a[0]==0)
{
a[0]=a[1];
a[1]=a[2];
a[2]=a[3];
a[3]=a[4];
a[4]=a[5];
a[5]=M[m];
}
for(i=0;i<6;i++)
a[i]=a[i]^G[i];
for(i=0;i<6;i++)
printf("%d",a[i]);
putchar('\n');
}
for(i=k;i<k+5;i++)
M[i]=a[i-k+1];
printf("\n\n将被传输的带校验和的帧为:\n");
for(i=0;i<k+5;i++)
printf("%d",M[i]);
putchar('\n');
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -