• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            隨筆 - 5  文章 - 2  trackbacks - 0
            <2025年5月>
            27282930123
            45678910
            11121314151617
            18192021222324
            25262728293031
            1234567

            There can be no Triumph without Loss,No Victory without Suffering,No Freedom without Sacrifice. All you have to decide is what to do with the time that is given to you. Get busy Living, or Get busy Dying?

            常用鏈接

            留言簿

            隨筆分類(4)

            隨筆檔案(5)

            文章分類(88)

            文章檔案(10)

            Andriod

            Language

            OpenCV&OpenSSLink

            OpenSource

            Others

            Python&Ruby

            WP7

            WTL

            搜索

            •  

            最新評論

            閱讀排行榜

            評論排行榜

            #include <iostream>
            using namespace std;
            int   gsmEncode7bit(const   char*   pSrc,   unsigned   char*   pDst,   int   nSrcLength);  
            int   gsmDecode7bit(const   unsigned   char*   pSrc,   char*   pDst,   int   nSrcLength); 
            int main()
            {
                const   char*   ypSrc = "1";
                unsigned   char*   ypDst;
                int   ynSrcLength = sizeof ypSrc;


                gsmEncode7bit(ypSrc,ypDst,ynSrcLength+1);


                system("pause");
            }
            //   7bit編碼  
            //   輸入:   pSrc   -   源字符串指針  
            //               nSrcLength   -   源字符串長度  
            //   輸出:   pDst   -   目標(biāo)編碼串指針  
            //   返回:   目標(biāo)編碼串長度  
            int   gsmEncode7bit(const   char*   pSrc,   unsigned   char*   pDst,   int   nSrcLength)  
            {  
                  int   nSrc; //   源字符串的計數(shù)值  
                  int   nDst; //   目標(biāo)編碼串的計數(shù)值  
                  int   nChar; //   當(dāng)前正在處理的組內(nèi)字符字節(jié)的序號,范圍是0-7  
                  unsigned   char   nLeft; //   上一字節(jié)殘余的數(shù)據(jù)  

                  //   計數(shù)值初始化  
                  nSrc   =   0;  
                  nDst   =   0;  

                  //   將源串每8個字節(jié)分為一組,壓縮成7個字節(jié)  
                  //   循環(huán)該處理過程,直至源串被處理完  
                  //   如果分組不到8字節(jié),也能正確處理  
                  while   (nSrc   <   nSrcLength)  
                  {  
                  //   取源字符串的計數(shù)值的最低3位  
                  nChar   =   nSrc   &   7;  

                  //   處理源串的每個字節(jié)  
                  if(nChar   ==   0)  
                  {  
                  //   組內(nèi)第一個字節(jié),只是保存起來,待處理下一個字節(jié)時使用  
                  nLeft   =   *pSrc;  
                  }  
                  else  
                  {  
                  //   組內(nèi)其它字節(jié),將其右邊部分與殘余數(shù)據(jù)相加,得到一個目標(biāo)編碼字節(jié)  
                  *pDst   =   (*pSrc   <<   (8-nChar))   |   nLeft;  

                  //   將該字節(jié)剩下的左邊部分,作為殘余數(shù)據(jù)保存起來  
                  nLeft   =   *pSrc   >>   nChar;  

                  //   修改目標(biāo)串的指針和計數(shù)值  
                  pDst++;  
                  nDst++;  
                  }  

                  //   修改源串的指針和計數(shù)值  
                  pSrc++;  
                  nSrc++;  
                  }  

                  //   返回目標(biāo)串長度  
                  return   nDst;  
            }  

            //   7bit解碼  
            //   輸入:   pSrc   -   源編碼串指針  
            //               nSrcLength   -   源編碼串長度  
            //   輸出:   pDst   -   目標(biāo)字符串指針  
            //   返回:   目標(biāo)字符串長度  
            int   gsmDecode7bit(const   unsigned   char*   pSrc,   char*   pDst,   int   nSrcLength)  
            {  
                  int   nSrc; //   源字符串的計數(shù)值  
                  int   nDst; //   目標(biāo)解碼串的計數(shù)值  
                  int   nByte; //   當(dāng)前正在處理的組內(nèi)字節(jié)的序號,范圍是0-6  
                  unsigned   char   nLeft; //   上一字節(jié)殘余的數(shù)據(jù)  

                  //   計數(shù)值初始化  
                  nSrc   =   0;  
                  nDst   =   0;  

                  //   組內(nèi)字節(jié)序號和殘余數(shù)據(jù)初始化  
                  nByte   =   0;  
                  nLeft   =   0;  

                  //   將源數(shù)據(jù)每7個字節(jié)分為一組,解壓縮成8個字節(jié)  
                  //   循環(huán)該處理過程,直至源數(shù)據(jù)被處理完  
                  //   如果分組不到7字節(jié),也能正確處理  
                  while(nSrc<nSrcLength)  
                  {  
                  //   將源字節(jié)右邊部分與殘余數(shù)據(jù)相加,去掉最高位,得到一個目標(biāo)解碼字節(jié)  
                  *pDst   =   ((*pSrc   <<   nByte)   |   nLeft)   &   0x7f;  

                  //   將該字節(jié)剩下的左邊部分,作為殘余數(shù)據(jù)保存起來  
                  nLeft   =   *pSrc   >>   (7-nByte);  

                  //   修改目標(biāo)串的指針和計數(shù)值  
                  pDst++;  
                  nDst++;  

                  //   修改字節(jié)計數(shù)值  
                  nByte++;  

                  //   到了一組的最后一個字節(jié)  
                  if(nByte   ==   7)  
                  {  
                  //   額外得到一個目標(biāo)解碼字節(jié)  
                  *pDst   =   nLeft;  

                  //   修改目標(biāo)串的指針和計數(shù)值  
                  pDst++;  
                  nDst++;  

                  //   組內(nèi)字節(jié)序號和殘余數(shù)據(jù)初始化  
                  nByte   =   0;  
                  nLeft   =   0;  
                  }  

                  //   修改源串的指針和計數(shù)值  
                  pSrc++;  
                  nSrc++;  
                  }  

                  //   輸出字符串加個結(jié)束符  
                  *pDst   =   '\0';  

                  //   返回目標(biāo)串長度  
                  return   nDst;  
            }



            posted on 2010-11-25 10:49 jemmyLiu 閱讀(744) 評論(0)  編輯 收藏 引用 所屬分類: C++BASE
            97久久国产亚洲精品超碰热| 香蕉久久夜色精品国产尤物| 亚洲va久久久噜噜噜久久| 久久人妻少妇嫩草AV无码蜜桃| 国产亚洲精品自在久久| 久久香综合精品久久伊人| 久久精品国产色蜜蜜麻豆| 久久笫一福利免费导航 | 99久久免费国产特黄| 无码专区久久综合久中文字幕| 久久国产AVJUST麻豆| 亚洲精品无码久久毛片| 国产精品乱码久久久久久软件| 欧美亚洲国产精品久久| 99久久国产精品免费一区二区| 2021国内精品久久久久久影院| 2021国内久久精品| 久久天天躁狠狠躁夜夜96流白浆| 久久久久久九九99精品| 久久精品草草草| 久久青青草原精品国产软件| 久久久无码精品亚洲日韩京东传媒 | 久久中文字幕人妻丝袜| 精品国产青草久久久久福利| 久久精品人人做人人爽97 | 亚洲精品美女久久久久99| 国产精品久久久久jk制服| 亚洲国产成人久久精品影视| 青青热久久国产久精品| 色婷婷综合久久久久中文一区二区| AV狠狠色丁香婷婷综合久久| 国产精品热久久无码av| 久久久久久久波多野结衣高潮| 久久国产欧美日韩精品| 一本久道久久综合狠狠躁AV| 97久久久久人妻精品专区 | 国产精品岛国久久久久| 欧美日韩成人精品久久久免费看| 亚洲午夜久久久久久久久久| 激情综合色综合久久综合| 777午夜精品久久av蜜臀|