資源簡介
信息論里面循環(huán)碼的編程實現(xiàn)(信息論實驗C++版)
代碼片段和文件信息
/*(73)循環(huán)碼的編譯及糾檢錯實現(xiàn)*/
#include
#include
#include
/*函數(shù)聲明*/
void?Begin();
void?Code();
void?Decoding();
/*主函數(shù)*/
main()
????{
?????printf(“\n?(73)循環(huán)碼的編碼和譯碼\n?“);
?????Begin();
????}
/*進行編碼*/
void?Code()
????{
?????int?Input[3];
?????int?Output[7];
?????int?reg[4]={0000};
?????int?tempijt;
?????printf(“請輸入信息碼?:“);
?????for(i=0;i<3;i++)
?????scanf(“?%d“&Input[i]);?????????????????????????/*輸入3位信息碼*/
?????for(i=0;i<3;i++)???????????????????????????????/*進行除法操作*/
????????{temp=reg[3]+Input[i];???????????????/*生成多項式為g(x)=x^4+x^3+x^2+1*/
?????????if(temp==2)?temp=0;
?????????reg[3]=reg[2]+temp;
?????????if(reg[3]==2)reg[3]=0;
?????????reg[2]=reg[1]+temp;
?????????if(reg[2]==2)reg[2]=0;
?????????reg[1]=reg[0];
?????????reg[0]=temp;
?????????}
?????for(i=0;i<3;i++)?Output[i]=Input[i];????????????/*進行編碼操作*/
?????for(i=3;i<7;i++)
????????{
?????????temp=reg[3];
?????????for(j=3;j>0;j--)
?????????????reg[j]=reg[j-1];
?????????????reg[0]=0;
?????????????Output[i]=temp;
?????????}
?????printf(“________________________________________“);
?????printf(“\n“);
?????printf(“?編碼結(jié)果:?\n“);
?????for(i=0;i<7;i++)
?????printf(?“??%d??“Output[i]);??????????????????????????/*輸出編碼結(jié)果*/
?????printf(“\n“);
?????printf(“________________________________________“);
?????printf(“\n“);
?????Begin();
?????}
/*譯碼并進行糾檢錯*/
void?Decoding()
{?int?Input[7]Output[7];
??int?reg[4]={0000};
??int?tempidxp;
??printf(“\n請輸入7位碼字(一次一位,輸入7次):“);
??for(i=0;i<7;i++)
??scanf(“??%d“&Input[i]);?????????????????????????????????/*輸入接受碼組*/
??for(i=0;i<7;i++)?????????????????????????????????????????/*進入除法電路*/
??{temp=reg[3];????????????????????????/*計算伴隨式S(x)*/
???reg[3]=reg[2]+temp;
???if(reg[3]==2)reg[3]=0;
???reg[2]=reg[1]+temp;
???if(reg[2]==2)reg[2]=0;
???reg[1]=reg[0];
???reg[0]=temp+Input[i];
???if(reg[0]==2
- 上一篇:斗地主MFC源代碼
- 下一篇:c語言實現(xiàn)的發(fā)送郵件
評論
共有 條評論