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

📄 gsmencode7bit.c

📁 GSM短信息7-bit编码程序
💻 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 + -