📄 gsmencode7bit.c
字号:
#include <my.h>
//7-bit编码
//pSrc:源字符串指针
//pDst:目标字符串指针
//nSrcLength:源字符串长度
//返回:目标编码串长度
int gsmEncode7bit(const uchar *pSrc,uchar *pDst,uint nSrcLength)
{
uint nSrc;
uint nDst;
uint nChar;
uchar nLeft;
nSrc=0;
nDst=0;
while(nSrc<nSrcLength)
{
nChar=nSrc&7;
if(nChar==0)
{
nLeft=*pSrc;
}
else
{
*pDst=(*pSrc<<(8-nChar))|nLeft;
nLeft=*pSrc>>nChar;
nDst++;
}
pSrc++;
nSrc++;
}
return nDst;
}
//可打印字符串转换为字节数据
//如:"C8329BFD0E01"-->{0xC8,0x32,0x9B,0xFD,0x0E,0x01}
//pSrc:源字符串指针
//pDst:目标数据指针
//nSrcLength:源字符串长度
//返回:目标数据长度
uint gsmString2Bytes(const uchar *pSrc,uchar *pDst,uint nSrcLength)
{
uint i;
for(i=0;i<nSrcLength;i+=2)
{
if(*pSrc>='0'&&*pSrc<='9')
{
*pDst=(*pSrc-'0')<<4;
}
else
{
*pDst=(*pSrc-'A'+10)<<4;
}
pSrc++;
if(*pSrc>='0'&&*pSrc<='9')
{
*pDst|=*pSrc-'0';
}
else
{
*pDst|=*pSrc-'A'+10;
}
pSrc++;
pDst++;
}
return nSrcLength;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -