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

📄 hufenc.c

📁 适合大型数值计算代码 现在网络上已经找不到了 购买需要20$
💻 C
字号:
#include <stdio.h>#include <stdlib.h>typedef struct {	unsigned long *icod,*ncod,*left,*right,nch,nodemax;} huffcode;void hufenc(unsigned long ich, unsigned char **codep, unsigned long *lcode,	unsigned long *nb, huffcode *hcode){	void nrerror(char error_text[]);	int l,n;	unsigned long k,nc;	static unsigned long setbit[32]={0x1L,0x2L,0x4L,0x8L,0x10L,0x20L,		0x40L,0x80L,0x100L,0x200L,0x400L,0x800L,0x1000L,0x2000L,		0x4000L,0x8000L,0x10000L,0x20000L,0x40000L,0x80000L,0x100000L,		0x200000L,0x400000L,0x800000L,0x1000000L,0x2000000L,0x4000000L,		0x8000000L,0x10000000L,0x20000000L,0x40000000L,0x80000000L};	k=ich+1;	if (k > hcode->nch || k < 1) nrerror("ich out of range in hufenc.");	for (n=hcode->ncod[k]-1;n>=0;n--,++(*nb)) {		nc=(*nb >> 3);		if (++nc >= *lcode) {			fprintf(stderr,"Reached the end of the 'code' array.\n");			fprintf(stderr,"Attempting to expand its size.\n");			*lcode *= 1.5;			if ((*codep=(unsigned char *)realloc(*codep,				(unsigned)(*lcode*sizeof(unsigned char)))) == NULL) {				nrerror("Size expansion failed.");			}		}		l=(*nb) & 7;		if (!l) (*codep)[nc]=0;		if (hcode->icod[k] & setbit[n]) (*codep)[nc] |= setbit[l];	}}

⌨️ 快捷键说明

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