uni2gb.c

来自「用C51单片机实现的MP3播放器的c代码程序。」· C语言 代码 · 共 38 行

C
38
字号
#ifndef _COMMON_DEFINE
 #include "COMMON.c"
#endif

#include "unicode.h"

void Uni2GB(unsigned char *s,unsigned char len);

void Uni2GB(unsigned char *s,unsigned char len)
{
	WORD mid,hi,lo,unicode;
	BYTE i,j,k;

	len=len/2;
	j=0;k=0;
	for(i=0;i<len;i++)
	{
		if (s[j+1]==0&&s[j]<0xa4)
		{s[k]=s[j];j+=2;k++;}
		else
		{
			((BYTE *)&unicode)[1]=s[j++];
			((BYTE *)&unicode)[0]=s[j++];
			lo=0;hi=UNICODE_MAX - 1;
			while(lo<=hi)
			{
				mid = (lo + hi) / 2;
				if (unicode==Unicode[mid][0]) {unicode=Unicode[mid][1];break;}
				else if (unicode<Unicode[mid][0]) hi=mid-1;
				else if (unicode>Unicode[mid][0]) lo=mid+1;
			}
			s[k++]=((BYTE *)&unicode)[0];
			s[k++]=((BYTE *)&unicode)[1];
		}
	}
	if (k<j) s[k]=0;
}

⌨️ 快捷键说明

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