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

📄 wm_bitio.h

📁 该源码提供了数据压缩算法中经常需要使用的内存中的位操作常用算法
💻 H
字号:

// wm_bitio.h

#ifndef _WIX_WM_BITIO_H_01_
#define _WIX_WM_BITIO_H_01_

// 取log2(n)的upper_bound
int UpperLog2(int n);

// 取log2(n)的lower_bound
int LowerLog2(int n);

// 将位指针*piByte(字节偏移), *piBit(字节内位偏移)后移num位
void MovePos(int* piByte, int* piBit, int num);

// 得到字节byte第pos位的值
//		pos顺序为高位起从0记数(左起)
BYTE GetBit(BYTE byte, int pos);

// 设置byte的第iBit位为aBit
//		iBit顺序为高位起从0记数(左起)
void SetBit(BYTE* byte, int iBit, BYTE aBit);

// 将DWORD值从高位字节到低位字节排列
void InvertDWord(DWORD* pDW);


// CopyBits : 复制内存中的位流
//		memDest - 目标数据区
//		nDestPos - 目标数据区第一个字节中的起始位
//		memSrc - 源数据区
//		nSrcPos - 源数据区第一个字节的中起始位
//		nBits - 要复制的位数
//	说明:
//		起始位的表示约定为从字节的高位至低位(由左至右)
//		依次为 0,1,... , 7
//		要复制的两块数据区不能有重合
void CopyBits(BYTE* memDest, int nDestPos, 
			  BYTE* memSrc, int nSrcPos, int nBits);


// CopyBitsInAByte : 在一个字节范围内复制位流
// 参数含义同 CopyBits 的参数
// 说明:
//		此函数由 CopyBits 调用,不做错误检查,即
//		假定要复制的位都在一个字节范围内
void CopyBitsInAByte(BYTE* memDest, int nDestPos, 
			  BYTE* memSrc, int nSrcPos, int nBits);


#endif // _WIX_WM_BITIO_H_01_

⌨️ 快捷键说明

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