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

📄 data_formatchange.c

📁 完整的EVRC压缩解压缩算法源码,附带一个简单的例子程序。
💻 C
字号:
#include "memory.h"
/*左移函数,左移一个帧,最后位补零*/
unsigned char *shiftleftframe(unsigned char *pin, int lengthp, int shiftcount)
{
//	assert(pin != NULL);
	unsigned char midvar;
	int i;
	for(i = 0; i < lengthp - 1; i++)
	{
		*(pin + i) <<= shiftcount;
		midvar = *(pin + i + 1);
		midvar >>= (8 - shiftcount);
		*(pin + i) |= midvar;
	}
	*(pin + lengthp - 1) <<= shiftcount;
	return (pin);
}

unsigned short format_change(unsigned char *pinStream, short int *poutStream)
{
	short int rate;
	unsigned char rate_get;
	int i;
	rate_get = *pinStream;
	
	switch(rate_get)
	{
	 case	1 : 
			{
				rate = 0x0004;
				shiftleftframe(pinStream, 22, 1);
				for(i = 0; i < 11; i++)
				{
					*(poutStream + i) = (short int)((*(pinStream + 1 + 2 * i) << 8) |*(pinStream + 2*i + 2));
				}
				break;
			}
	 case	2 :   {
				rate = 0x0003;
				for(i = 0; i < 5; i ++ )
				{
					*(poutStream + i) = (short int)((*(pinStream + 1 + 2 * i) << 8) |*(pinStream + 2*i + 2));
				}
				memset(poutStream + 6, 0, 12);
				break;
			}
	 case	3 :   {
				rate = 0x0001;
				*(poutStream) = (short int)((*(pinStream + 1) << 8) | *(pinStream + 2));
				memset(poutStream + 2, 0, 21);
				break;
			}
	}
	return rate;
}

⌨️ 快捷键说明

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