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

📄 bitio.h

📁 GPS programme for changchun at 8X
💻 H
字号:
//“星载大压缩比数据压缩技术”压缩编解码核心算法
//  预扫描无链表零树编码  designed by  陈军  2000-5-15
//
// 比特流组织部分
//
unsigned char mask;
unsigned char rack;
unsigned char over_flag; 
unsigned char *bit;

int maxbitlength;
int bitlen;
short bblen=0;

//
//void OpenOutputBitStream(int maxlen)
//{
//	bit=(unsigned char*)malloc(maxlen);	
//	bitlen = 0;  //实际上是字节计数
//	rack = 0;
//	mask = 0x80;
//	maxbitlength = maxlen;
//	over_flag = 0;
//}

void OpenInputBitStream()
{
	rack = 0;
	mask = 0x80;
	maxbitlength = bitlen; 
	over_flag = 0;
	bitlen = 0;  
}

void OutputBit(char bitt)
{
	if(over_flag==1) return;

	if (bitt==1)
	{
		rack |= mask; 
	}
	
	bblen++;
	if(bblen%8==0) 
	{
		bblen=0;
	}

	mask >>= 1;
	if (mask == 0) 
	{
		bit[bitlen++]=rack;
		if(bitlen==maxbitlength) over_flag=1;
		rack = 0;
		mask = 0x80;
	 }
}

void OutputBits(char code,char count)
{
    unsigned char mmask;
    mmask = 1 << (count-1);
    while (mmask != 0) 
	{
        if (mmask & code) rack |= mask;
        mask >>= 1;
        if (mask == 0)
		{
			bit[bitlen++]=rack;
			rack = 0;
			mask = 0x80;
        }
         mmask >>= 1;
    }
}

char InputBit()
{
	char   value=0;
	
	if(over_flag==1) return 0;
	if (mask == 0x80)
	{
		 rack = bit[bitlen++];
		 if(bitlen==maxbitlength) over_flag=1;
	}
	value = rack & mask;
	mask >>= 1;
	if (mask == 0) mask = 0x80;
	return(value?1:0);
}

char InputBits(char bit_count)
{
	unsigned char mmask, return_value=0;
	
	mmask = 1 << (bit_count-1);
	while (mmask != 0)
	{
		if (mask == 0x80) rack = bit[bitlen++];
		if (rack & mask)  return_value |= mmask;
		mmask >>= 1;
		mask >>= 1;
		if (mask == 0) mask = 0x80;
	}
	return (return_value);
}

⌨️ 快捷键说明

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