#include<stdio.h>
#include<math.h>
#define n 100
/**/
void main(){
/*从文件中获取,temp用于中间值,i迭代,0和1的总个数,n所需最小信息量n1*/
int temp;
int i,m;
int buf[n];
int n0,n1;
double p0,p1;
FILE * fp;
i=0;m=0;
n0=n1=0;
if((fp=fopen("source1.dat","r"))==NULL)
{
printf("open erro!\n");
}
else
{
while (!feof(fp))
{
fscanf(fp,"%d",&temp);
buf[i]=temp;
printf("%d",buf[i]);
i++;
m++;
}
}
printf("\ntotal number is : %d\n",m);
/*计算0和1的数目n0和n1以及p0和p1*/
for(i=0;i<m;i++){
if(buf[i]==0) n0++;
}
n1=m-n0;
p0=(double)n0/m;p1=1-p0;
printf("n0=%d,n1=%d,p0=%f,p1=%f\n",n0,n1,p0,p1);
/*计算信息熵*/
doubl
二进制算术编码器的C语言实现
最新推荐文章于 2024-07-22 17:41:09 发布