• <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
            日本久久中文字幕| 久久久久99精品成人片三人毛片 | 久久成人影院精品777| 91久久精品国产成人久久| 伊人久久大香线蕉综合5g| 久久精品国产亚洲av高清漫画 | 久久午夜综合久久| 久久综合九色综合网站| 久久久久久国产a免费观看不卡| 久久妇女高潮几次MBA| 中文字幕亚洲综合久久| 色综合久久无码中文字幕| 麻豆国内精品久久久久久| 久久电影网2021| 久久人人爽爽爽人久久久| 尹人香蕉久久99天天拍| 精品欧美一区二区三区久久久 | 99久久精品午夜一区二区| 午夜肉伦伦影院久久精品免费看国产一区二区三区 | 亚洲天堂久久精品| 久久无码人妻一区二区三区 | 婷婷综合久久中文字幕| 久久精品国产亚洲精品2020 | 精品综合久久久久久97超人| 77777亚洲午夜久久多喷| 人妻精品久久久久中文字幕| 国产成人精品久久亚洲高清不卡| 久久发布国产伦子伦精品| 欧美丰满熟妇BBB久久久| 亚洲人AV永久一区二区三区久久 | 99久久99久久精品国产片果冻| 久久久久久久久久久久中文字幕| 久久久久亚洲AV成人网人人网站 | 亚洲综合婷婷久久| 国产精久久一区二区三区| 久久久国产精品网站| 伊人热人久久中文字幕| 99久久精品免费国产大片| 国产99久久久国产精免费| 久久免费视频一区| 久久无码AV一区二区三区|