?? rs.cpp
字號:
#include<fstream.h>
unsigned int in_data_qian8[405];
unsigned int shengchengduoxiangshi=16385; //生成多項式100000000000001(1)
unsigned int raomaqi_biaozhiwei; //擾碼器寄存器標志位
unsigned int raomaqi_jichunqi=1; //擾碼器寄存器15位,設初始狀態為1
unsigned int rs_bianma_jiaoyan[96]; //rs編碼校驗值存放數組
unsigned int rs_bianma_caozuoshu; //rs編碼操作數
unsigned int rs_bianma_jicunqi_0; //rs編碼寄存器0
unsigned int rs_bianma_jicunqi_1; //rs編碼寄存器1
unsigned int rs_bianma_jicunqi_2; //rs編碼寄存器2
unsigned int rs_bianma_jicunqi_3; //rs編碼寄存器3 unsigned int in_data_xinxi5[648];
unsigned int in_data_xinxi5[648];
void main()
{
int t;
int i,j,k,k1,k2;
unsigned int rs_benyuyu[31] ={ 1, 2, 4, 8,16, 5,//由本原域值推出多項式值的表
10,20,13,26,17, 7,
14,28,29,31,27,19,
3, 6,12,24,21,15,
30,25,23,11,22, 9,
18};
unsigned int rs_duoxiangshi[31]={ 0, 1,18, 2, 5,19,//由多項式值推出本原域值的表、使用時需要減1
11, 3,29, 6,27,20,
8,12,23, 4,10,30,
17, 7,22,28,26,21,
25, 9,16,13,14,24,
15};
ofstream fout("e:\\a.txt");
for(i=0;i<255;i++) in_data_qian8[i]=i+1;
for(i=255;i<405;i++) in_data_qian8[i]=i-255;
for(j=0;j<405;j++)
{
for(k=0;k<8;k++)
{
t=(in_data_qian8[j]>>k) & 1;
fout<<t<<" ";
for(i=14;i>=0;i--)
{
t=(raomaqi_jichunqi>>i) & 1;
fout<<t<<" ";
}
fout<<" ";
raomaqi_biaozhiwei= raomaqi_jichunqi & shengchengduoxiangshi;
if(raomaqi_biaozhiwei>1) raomaqi_biaozhiwei=shengchengduoxiangshi-raomaqi_biaozhiwei;
raomaqi_biaozhiwei = raomaqi_biaozhiwei ^ (in_data_qian8[j]>>k & 1);
fout<<raomaqi_biaozhiwei<<" ";
raomaqi_jichunqi=raomaqi_jichunqi<<1;
raomaqi_jichunqi=raomaqi_jichunqi ^ raomaqi_biaozhiwei;
in_data_qian8[j]=(in_data_qian8[j] & ~(1<<k)) ^ (raomaqi_biaozhiwei<<k);
// cout<<in_data_qian8[j]<<" ";
fout<<endl;
}
fout<<in_data_qian8[j]<<endl;
}
fout<<endl;
for(j=0;j<81;j++)
{
for(k2=0;k2<8;k2++)
{
in_data_xinxi5[j*8+k2]=0;
for(k1=0;k1<5;k1++)
{
in_data_xinxi5[j*8+k2]=((in_data_qian8[j*5+k1]>>k2 & 1)<<k1) ^ in_data_xinxi5[j*8+k2];
}
fout<<in_data_xinxi5[j*8+k2]<<endl;
}
}
fout<<endl;
for(j=0;j<24;j++)
{
//寄存器清0
rs_bianma_jicunqi_0=0;
rs_bianma_jicunqi_1=0;
rs_bianma_jicunqi_2=0;
rs_bianma_jicunqi_3=0;
for(k=0;k<27;k++)
{
//算取操作數
rs_bianma_caozuoshu = in_data_xinxi5[j*27+k] ^ rs_bianma_jicunqi_3;
//算取寄存器
if(rs_bianma_caozuoshu==0)
{
rs_bianma_jicunqi_3 = rs_bianma_jicunqi_2;
rs_bianma_jicunqi_2 = rs_bianma_jicunqi_1;
rs_bianma_jicunqi_1 = rs_bianma_jicunqi_0;
rs_bianma_jicunqi_0 = 0;
}
else
{
rs_bianma_caozuoshu = rs_duoxiangshi[rs_bianma_caozuoshu-1];
rs_bianma_jicunqi_3 = rs_benyuyu[(rs_bianma_caozuoshu+24)>30?(rs_bianma_caozuoshu+24)-31:(rs_bianma_caozuoshu+24)] ^ rs_bianma_jicunqi_2;
rs_bianma_jicunqi_2 = rs_benyuyu[(rs_bianma_caozuoshu+19)>30?(rs_bianma_caozuoshu+19)-31:(rs_bianma_caozuoshu+19)] ^ rs_bianma_jicunqi_1;
rs_bianma_jicunqi_1 = rs_benyuyu[(rs_bianma_caozuoshu+29)>30?(rs_bianma_caozuoshu+29)-31:(rs_bianma_caozuoshu+29)] ^ rs_bianma_jicunqi_0;
rs_bianma_jicunqi_0 = rs_benyuyu[(rs_bianma_caozuoshu+10)>30?(rs_bianma_caozuoshu+10)-31:(rs_bianma_caozuoshu+10)];
}
fout<<rs_bianma_jicunqi_3<<" "<<rs_bianma_jicunqi_2<<" "<<rs_bianma_jicunqi_1<<" "<<rs_bianma_jicunqi_0<<endl;
}
//存放校驗碼字
rs_bianma_jiaoyan[j*4] =rs_bianma_jicunqi_3;
rs_bianma_jiaoyan[j*4+1]=rs_bianma_jicunqi_2;
rs_bianma_jiaoyan[j*4+2]=rs_bianma_jicunqi_1;
rs_bianma_jiaoyan[j*4+3]=rs_bianma_jicunqi_0;
fout<<endl<<rs_bianma_jiaoyan[j*4]<<" "<<rs_bianma_jiaoyan[j*4+1]<<" "<<rs_bianma_jiaoyan[j*4+2]<<" "<<rs_bianma_jiaoyan[j*4+3]<<endl<<endl;
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -