各位大哥帮忙翻译一下int Encode(const char* pSrc, unsigned char* pDst, int nSrcLength)
{
    int nSrc;
    int nDst;
    int nChar;
    unsigned char 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; 
}
    
int Decode(const unsigned char* pSrc, char* pDst, int nSrcLength)
{
    int nSrc;        
    int nDst;        
    int nByte;       
    unsigned char nLeft; 
    
    nSrc = 0;
    nDst = 0;
    
    nByte = 0;
    nLeft = 0;
    
    while(nSrc<nSrcLength)
    {
        *pDst = ((*pSrc << nByte) | nLeft) & 0x7f;
        nLeft = *pSrc >> (7-nByte);
    
        pDst++;
        nDst++;
    
        nByte++;
    
        if(nByte == 7)
        {
            *pDst = nLeft;
    
            pDst++;
            nDst++;
    
            nByte = 0;
            nLeft = 0;
        }
    
        pSrc++;
        nSrc++;
    }
    
    *pDst = 0;
    
    return nDst;
}