hufdec.cpp

来自「C++数值算法原书代码」· C++ 代码 · 共 26 行

CPP
26
字号
#include <string>
#include "nr.h"
using namespace std;

void NR::hufdec(unsigned long &ich, string &code, const unsigned long lcode,
	unsigned long &nb, huffcode &hcode)
{
	unsigned long nc;
	static unsigned char setbit[8]={0x1,0x2,0x4,0x8,0x10,0x20,0x40,0x80};

	int node=hcode.nodemax-1;
	for (;;) {
		nc=nb >> 3;
		if (nc >= lcode) {
			ich=hcode.nch;
			return;
		}
		node=((code[nc] & setbit[7 & nb++]) != 0 ?
			hcode.right[node] : hcode.left[node]);
		if (node < hcode.nch) {
			ich=node;
			return;
		}
	}
}

⌨️ 快捷键说明

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