#define N 50
#include
#include
#include
#include
using namespace std;
int arr[N];//存放为1的数
static int cot = 0;//指针偏移
void numFun(char num) //遍历多项式系数标记系数为1的数
{
if ('1'==num)
{
arr[cot] = 1;
}
cot++;
}
int main()
{
string rawData;//原始数据
string num;//系数
cout << "请输入原始数据:" << endl;
cin >> rawData;
cout << "请输入多项式的各项系数:" << endl;
cin >> num;
rawData.append(num.size()-1,'0');
string::iterator ite=num.end();
string::iterator ite0 = num.begin();
for_each(ite0+1, ite,numFun);
vector
vector
vector
for (size_t i=0;i
*ite2 = rawData[i];
ite2++;
}
for (size_t i=0;i
ite2 = vec.begin();
if ('1'==*ite2)
{
for (int i=0;i
if(1==arr[i])
{
if ('1'==vec[i+1])
{
vec[i + 1] = '0';
}
else if ('0'==vec[i+1])
{
vec[i + 1] = '1';
}
}
}
}
for (size_t i=0;i
vec[i] = vec[i + 1];
}
*ite1 = rawData[vec.size()+i];
}
cout << "CRC校验码为:" << endl;
for (size_t i=1;i
cout << vec[i];
}
system("pause");
return 0;
}



