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

📄 code.c

📁 几个压缩算法程序(改进包括lzw、lz77、compress、huffeman)
💻 C
字号:
#include <stdio.h>

int array[128]={6,33,34,35,36,37,38,39,5,41,42,43,44,45,46,47,
		48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,7,65,66,67,
		68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,
		88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,
		106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,
		121,122,123,124,125,126,127,3,129,130,131,132,133,134,4,
		136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,
		151,152,153,154,155,156,157,158,159};

main( int argc,char * argv[] )
{
  FILE * input_file;
  FILE * output_file;
  unsigned char rackin;
  unsigned char rackout;
  int mask;
  int i,j,flag;
  char out_char;
  unsigned char bit[8];
  char conclude;

  if( ( input_file=fopen( argv[1],"r") )==NULL )
      { printf( "cant open the input_file " );
        exit(0); }
  output_file=fopen( argv[2],"w" );

for( ; ; ){
  mask=0x01;
  rackout=0;
  rackin=getc( input_file ) ;
  conclude=rackin;
  if( conclude==EOF ) break;
  rackout=( rackin>>1 );
  out_char=array[rackout];
  putc( out_char,output_file );
  bit[6]=rackin&mask;
  bit[6]<<=6;

  mask=0x01;
  rackout=0;
  rackin=getc( input_file );
  conclude=rackin;
  if( conclude==EOF ) break;
  rackout=( rackin>>2 );
  rackout |= bit[6];
  out_char=array[rackout];
  putc( out_char,output_file );
  bit[5]=rackin&mask;
  bit[5]<<=5;
  mask<<=1;
  bit[6]=rackin&mask;
  bit[6]<<=5;

  mask=0x01;
  rackout=0;
  rackin=getc( input_file );
  conclude=rackin;
  if( conclude==EOF ) break;
  rackout=( rackin>>3 );
  rackout |= bit[5];
  rackout |= bit[6];
  out_char=array[rackout];
  putc( out_char,output_file );
  bit[4]=rackin&mask;
  bit[4]<<=4;
  mask<<=1;
  bit[5]=rackin&mask;
  bit[5]<<=4;
  mask<<=1;
  bit[6]=rackin&mask;
  bit[6]<<=4;

  mask=0x01;
  rackout=0;
  rackin=getc( input_file );
  conclude=rackin;
  if( conclude==EOF ) break;
  rackout=( rackin>>4 );
  rackout |= bit[4];
  rackout |= bit[5];
  rackout |= bit[6];
  out_char=array[rackout];
  putc( out_char,output_file );
  for( i=3;i<=6;i++ ){
       bit[i]=rackin&mask;
       bit[i]<<=3;
       mask<<=1;
       }

  mask=0x01;
  rackout=0;
  rackin=getc( input_file ) ;
  conclude=rackin;
  if( conclude==EOF ) break;
  rackout=( rackin>>5 );
  for( i=3;i<=6;i++ )
       rackout |= bit[i];
  out_char=array[rackout];
  putc( out_char,output_file );
  for( i=2;i<=6;i++ ){
       bit[i]=rackin&mask;
       bit[i]<<=2;
       mask<<=1;
       }

  mask=0x01;
  rackout=0;
  rackin=getc( input_file );
  conclude=rackin;
  if( conclude==EOF ) break;
  rackout=( rackin>>6 );
  for( i=2;i<=6;i++ )
       rackout |= bit[i];
  out_char=array[rackout];
  putc( out_char,output_file );
  for( i=1;i<=6;i++ ){
       bit[i]=rackin& mask;
       bit[i]<<=1;
       mask<<=1;
       }

  mask=0x01;
  rackout=0;
  rackin=getc( input_file );
  conclude=rackin;
  if( conclude==EOF ) break;
  rackout=( rackin>>7 );
  for( i=1;i<=6;i++ )
       rackout |= bit[i];
  out_char=array[rackout];
  putc( out_char,output_file );

  rackout=0;
  mask=0x7f;
  rackout=rackin & mask ;
  out_char=array[rackout];
  putc( out_char,output_file );
}
  fclose( output_file );
  fclose( input_file );
  printf("rackin=%dconclude=%d",rackin,conclude);
}





⌨️ 快捷键说明

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