Fan.Sys.MemBuf.toBase64 C# (CSharp) Method

toBase64() public method

public toBase64 ( ) : string
return string
        public override string toBase64()
        {
            StringBuilder s = new StringBuilder(m_size*2);
              char[] base64chars = Buf.base64chars;
              int i = 0;

              // append full 24-bit chunks
              int end = m_size-2;
              for (; i<end; i += 3)
              {
            int c = m_buf[i];
            int n = ((m_buf[i] & 0xff) << 16) + ((m_buf[i+1] & 0xff) << 8) + (m_buf[i+2] & 0xff);
            s.Append(base64chars[(n >> 18) & 0x3f]);
            s.Append(base64chars[(n >> 12) & 0x3f]);
            s.Append(base64chars[(n >> 6) & 0x3f]);
            s.Append(base64chars[n & 0x3f]);
              }

              // pad and encode remaining bits
              int rem = m_size - i;
              if (rem > 0)
              {
            int n = ((m_buf[i] & 0xff) << 10) | (rem == 2 ? ((m_buf[m_size-1] & 0xff) << 2) : 0);
            s.Append(base64chars[(n >> 12) & 0x3f]);
            s.Append(base64chars[(n >> 6) & 0x3f]);
            s.Append(rem == 2 ? base64chars[n & 0x3f] : '=');
            s.Append('=');
              }

              return s.ToString();
        }