#include <string.h>
#include <stdlib.h>
//parameter:nSourceColor-32bitsRGB Color to convert
//Returns:The Converted color as a 16 Bits RGB Color
unsigned short ConvertRGB888toRGB565(unsigned int nSourceColor)
{
unsigned short nReturn = 0;
unsigned int nRed = nSourceColor & 0x00F80000 >> 8;
unsigned int nGreen = nSourceColor & 0x0000FC00 >>5;
unsigned int nBlue = nSourceColor & 0x000000F8 >>3;
nReturn = nRed | nGreen | nBlue;
return nReturn;
}
//实现压缩函数
//压缩一个只包含字母的字符串,它将一段连续相同的字母转换成重复次数然后紧跟这个字母
//例如
void Compress( char* pBuffer,int nBufLen,const char* pText)
{
while ( *pText != '\0')
{
char* pTemp = (char*)pText;
char cTemp = *pText;
pTemp ++;
int i = 1;
if ( cTemp != *pTemp)
{
*pBuffer = cTemp;
pBuffer ++;
pText ++;
}
else
{
while( cTemp == *pTemp)
{
i ++;
pTemp ++;
}
char pCount[20];
_itoa(i,pCount,10);
strcpy(pBuffer,pCount);
pBuffer +=strlen(pCount);
*pBuffer = *pText;
pBuffer ++;
pText = pTemp;
}
}
*pBuffer = '\0';
}
int main()
{
char* pText = "AAAAAAAAAABBBBCCCCCDDE";
char cTest[100];
Compress(cTest,strlen(pText),pText);
unsigned int nTest = 0x00FFFFFF;
ConvertRGB888toRGB565(nTest);
return 0;
}
笔试中的算法题
最新推荐文章于 2019-01-11 00:36:35 发布