⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 crc.cpp

📁 一个关于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 + -