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

📄 movetofront.cpp

📁 My (so called) HiP compression algorithm as console mode utility. It s a hybrid of Lempel-Ziv 77 a
💻 CPP
字号:
#include "movetofront.h"

void MoveToFront::Encode( PBYTE buffer, DWORD cb )
{
	BYTE  byTbl[256];

	// initialize table
	for ( UINT u = 0; u < 256; u++ )
		byTbl[u] = u;

	// process input buffer
	for ( UINT c = 0; c < cb; c++ )
	{
		// find symbol in table
		for ( UINT i = 0; ; i++ )
			if ( byTbl[i] == *buffer )
				break;

		UINT index = i;

		// move table items til index by 1 position
		for ( ; i != 0; --i )
			byTbl[i] = byTbl[i - 1];

		byTbl[0] = *buffer;
		*buffer  = index;

		// inc ptr
		++buffer;
	}

	return;
}

void MoveToFront::Decode( PBYTE buffer, DWORD cb )
{
	BYTE  byTbl[256];

	// initialize table
	for ( UINT u = 0; u < 256; u++ )
		byTbl[u] = u;

	// process input buffer
	for ( UINT c = 0; c < cb; c++ )
	{
		BYTE by = byTbl[*buffer];

		// move table items til index by 1 position
		for ( UINT i = *buffer ; i != 0; --i )
			byTbl[i] = byTbl[i - 1];

		byTbl[0] = by;
		*buffer  = by;

		// inc ptr
		++buffer;
	}

	return;
}

⌨️ 快捷键说明

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