📄 crc.cpp
字号:
#include<iostream.h>
int generator(int crc_code[],int gen_poly[],int &code_bits,int &gen_bits)
{
int code[100],temp[100],remainder[100];
char code_str[100],poly_str[100];
int i,j;//,code_bits,gen_bits;
cin>>code_str;
cin>>poly_str;
i=0;
while(*(code_str+i)!='\0')
{
*(code+i)=*(code_str+i)-48;
i++;
}
code_bits=i;
i=0;
while(*(poly_str+i)!='\0')
{
*(gen_poly+i)=*(poly_str+i)-48;
i++;
}
gen_bits=i;
for(i=0;i<gen_bits-1;i++)
{
code[code_bits+i]=0;
}
for(i=0;i<gen_bits;i++)
{
remainder[i]=code[i];
}
i=0;
while((i+gen_bits-1)<(code_bits+gen_bits-1))
{
if(remainder[0]==1)
{
for(j=0;j<gen_bits;j++)
temp[j]=gen_poly[j];
}
else
{
for(j=0;j<gen_bits;j++)
temp[j]=0;
}
for(int k=1;k<gen_bits;k++)
{
if(remainder[k]==temp[k]) remainder[k-1]=0;
else remainder[k-1]=1;
}
remainder[k-1]=code[i+gen_bits];
i++;
}
for(i=0;i<gen_bits-1;i++)
{
code[code_bits+i]=remainder[i];
}
for(i=0;i<code_bits+gen_bits-1;i++)
crc_code[i]=code[i];
return 0;
}
int main()
{
int a[100],b[100];
int x,y;
generator(a,b,x,y);
cout<<(x+y-1)<<" "<<y<<" ";
for(int i=0;i<x+y-1;i++)
cout<<a[i]<<" ";
for(i=0;i<y;i++)
cout<<b[i]<<" ";
cout<<endl;
return 1;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -