decode.txt

来自「1.一个vc++环境下的算术编码字符流的编码实例. 2.该编码可以实现任意输入」· 文本 代码 · 共 38 行

TXT
38
字号

//以解码bill~gates为例子
//输入概率为0.1463722915
#include   <iostream>   
  using   namespace   std;  
main()
{
  long double I[9][2]={{0,0.1},{0.1,0.2},{0.2,0.3},{0.3,0.4},{0.4,0.5},{0.5,0.7},{0.7,0.8},{0.8,0.9},{0.9,1.0}};
   char element[9]={'a','b','e','g','i','l','t','s','.'};
   long double L=0,b;
   int cnt=0,a;
   long double H=1,length=1.0,ltemp,temp;
  char flag[10];   
  int j,i;
cout<<"please input the nember to be decoded:"<<endl;
  cin>>b;
  while(cnt<10)
     { temp=(b-L)/length;
      for(j=0;j<10;j++)

        {
          if(I[j][0]<temp&&I[j][1]>temp)
           {  flag[cnt++]=element[j];
           a=j;
           }
         }
   ltemp=L;
   L+=length*I[a][0];
   H=ltemp+length*I[a][1];
   length=H-L;
  }
  cout<<"\n the decoded the nembers are as following:\n";
  for(i=0;i<10;i++)
   cout<<flag[i]<<endl;
  
return 0;
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?