⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 shannonsource2.cpp

📁 信息论与编码中
💻 CPP
字号:
#include <iostream.h>
#include <math.h>
int b2td1 (double x, int k);

 void main ()
 {double a[6];
double b[6];
int i,j,n,l;
int k[6];
double m,v;
cout<<"请输入数据长度l=";
cin>>l;
cout <<endl;
for (i=0;i<l;i++)
{cin>>a[i];}             //数据输入
for (i=0;i<l-1;i++)
{for (j=i+1;j<l;j++)
{if (a[i]<a[j]) 
{v=a[i];a[i]=a[j];a[j]=v;}
}
} // 排序
cout <<"输入的数据"<<"--"<<"求和数据"<<"--"<<"码长"<<"--"<<"码字"<<endl;
cout <<"---------------------------------------"<<endl;
m=(1-(log10(a[0])/log10(2)));
n=int (m);
if(m==n)  { n=n-1;}
k[0]=n;
b[0]=0;
cout <<a[0]<<"------"<<b[0]<<"------"<<k[0]<<"------";
b2td1(b[0],k[0]);
for  (i=1;i<l;i++)   
{cout <<a[i]<<"------";
	b[0]=0;
	b[i]=b[i-1]+a[i-1];
cout <<b[i]<<"-------";
 m=(1-(log10(a[i])/log10(2)));
n=int (m);
if(m==n)  { n=n-1;}
k[i]=n;
 cout <<k[i]<<"------";
 b2td1 ( b[i], k[i]);  //函数调用
}
}

int  b2td1 (double x,int k) //进制转换
 {int j,p;
 int z[8];
double t;
t=x;
 for (j=0;j<k;j++)
{t=t*2;
if (t>=1) {p=1;t=t-1;}
else p=0;
z[j]=p;
cout <<z[j] ;
}
cout <<endl;
return 0;
}

⌨️ 快捷键说明

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