📄 decrc.cpp
字号:
#include <stdio.h>
#include <math.h>
#include <string.h>
#include <stdlib.h>
int *decrc_12(int *string_decrc)
{
int *p_decrc = (int *)malloc(200*sizeof(int));
static int string_afterdecrc[173]; //加一判断位
int i;
int j=0;
int poly_decrc[13]={1,1,1,1,1,0,0,0,1,0,0,1,1};
for(i=0;i<=183;i++)
{
*(p_decrc+i)=*(string_decrc+i);
}
*(p_decrc+184)=2;
/* for(i=0;i<=171;i++) // 信息比特
{
string_aftercrc[i]=*(p_crc+i);
}
for(i=1;i<=12;i++) // 补12个0
{
*(p_crc+171+i)=0;
} */
while(j<=171)
{
for(i=0;i<=12;i++) // 异或
{
*(p_decrc+i)=*(p_decrc+i)^poly_decrc[i];
}
i=0;
while(*(p_decrc+i)==0)
{
i++;
}
p_decrc=p_decrc+i; // 移位
j=j+i;
}
for(i=0;i<=171;i++)
{
string_afterdecrc[i]=*(string_decrc+i);
}
if(*(p_decrc)==2)
{
string_afterdecrc[172]=1;
}
else
{
string_afterdecrc[172]=0;
}
return (string_afterdecrc);
}
void main()
{
int string[192]={1,0,1,1,0,0,1,1,0,1,
1,0,1,1,0,0,1,1,0,1,
1,0,1,1,0,0,1,1,0,1,
1,0,1,1,0,0,1,1,0,1,
1,0,1,1,0,0,1,1,0,1,
1,0,1,1,0,0,1,1,0,1,
1,0,1,1,0,0,1,1,0,1,
1,0,1,1,0,0,1,1,0,1,
1,0,1,1,0,0,1,1,0,1,
1,0,1,1,0,0,1,1,0,1,
1,0,1,1,0,0,1,1,0,1,
1,0,1,1,0,0,1,1,0,1,
1,0,1,1,0,0,1,1,0,1,
1,0,1,1,0,0,1,1,0,1,
1,0,1,1,0,0,1,1,0,1,
1,0,1,1,0,0,1,1,0,1,
1,0,1,1,0,0,1,1,0,1,
1,0,1,1,0,0,1,1,0,1,
1,0,1,1,0,0,1,1,0,1,1,1};
int i=0;
int *s;
s= decrc_12(string);
if(*(s+172)==1)
{
for(i=0;i<=171;i++)
{printf("%d",*(s+i));}
printf("\n\nfrefre");
}
else
{
printf("wrong\n\nfrefre");
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -