📄 vit2en.c
字号:
#include"vit.h"
unsigned int partab[256] = {
0, 1, 1, 0, 1, 0, 0, 1,
1, 0, 0, 1, 0, 1, 1, 0,
1, 0, 0, 1, 0, 1, 1, 0,
0, 1, 1, 0, 1, 0, 0, 1,
1, 0, 0, 1, 0, 1, 1, 0,
0, 1, 1, 0, 1, 0, 0, 1,
0, 1, 1, 0, 1, 0, 0, 1,
1, 0, 0, 1, 0, 1, 1, 0,
1, 0, 0, 1, 0, 1, 1, 0,
0, 1, 1, 0, 1, 0, 0, 1,
0, 1, 1, 0, 1, 0, 0, 1,
1, 0, 0, 1, 0, 1, 1, 0,
0, 1, 1, 0, 1, 0, 0, 1,
1, 0, 0, 1, 0, 1, 1, 0,
1, 0, 0, 1, 0, 1, 1, 0,
0, 1, 1, 0, 1, 0, 0, 1,
1, 0, 0, 1, 0, 1, 1, 0,
0, 1, 1, 0, 1, 0, 0, 1,
0, 1, 1, 0, 1, 0, 0, 1,
1, 0, 0, 1, 0, 1, 1, 0,
0, 1, 1, 0, 1, 0, 0, 1,
1, 0, 0, 1, 0, 1, 1, 0,
1, 0, 0, 1, 0, 1, 1, 0,
0, 1, 1, 0, 1, 0, 0, 1,
0, 1, 1, 0, 1, 0, 0, 1,
1, 0, 0, 1, 0, 1, 1, 0,
1, 0, 0, 1, 0, 1, 1, 0,
0, 1, 1, 0, 1, 0, 0, 1,
1, 0, 0, 1, 0, 1, 1, 0,
0, 1, 1, 0, 1, 0, 0, 1,
0, 1, 1, 0, 1, 0, 0, 1,
1, 0, 0, 1, 0, 1, 1, 0,
};/*异或表*/
/*以下是编码程序*/
void vit2en(unsigned int *in,unsigned int *en)
{
int i,j;
int n,g0,g1,encstate;
encstate=0;
for(j=0;j<N1;j++)
{
*(en+2*j)=0;
*(en+2*j+1)=0;
n=15;
for(i=7;i>=0;i--)
{
encstate=(encstate<<1)|((*(in+j)>>i)&1);
g0=partab[encstate & POLYA];
g1=partab[encstate & POLYB];
if (n>7)
{
*(en+2*j)=*(en+2*j)|(g0<<(n-8));
n--;
*(en+2*j)=*(en+2*j)|(g1<<(n-8));
n--;
}
else
{
*(en+2*j+1)=*(en+2*j+1)|(g0<<(n));
n--;
*(en+2*j+1)=*(en+2*j+1)|(g1<<(n));
n--;
}
}
}
*(en+2*N1)=0;
n=15;
/*加尾*/
for(i=0;i<2;i++)
{
encstate=encstate<<1;
g0=partab[encstate &POLYA];
g1=partab[encstate & POLYB];
*(en+2*N1)|=(g0<<(n-8));
n--;
*(en+2*N1)|=(g1<<(n-8));
n--;
}
*(en+2*N1+1)=0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -