1. public string distinctChar(string source)  
  2.     {  
  3.         char[] srcArr = source.ToCharArray();  
  4.         //标识数组 2048 = 65535/32 + 1     
  5.         //每一位(Bit)都标识一个字符,1表示字符已经出现过,0表示字符尚未出现,初始全为0     
  6.         int[] fArr = new int[2048];  
  7.         int shift;  
  8.         string dStr = "";  
  9.         for (int i = srcArr.Length - 1; i >= 0; i--)  
  10.         {  
  11.             shift = 1;  
  12.             shift <<= srcArr[i] % 32;  
  13.             if (0 == (shift & fArr[srcArr[i] >> 5]))  
  14.             {  
  15.                 dStr+=srcArr[i];  
  16.                 fArr[srcArr[i] >> 5] += shift;  
  17.             }  
  18.         }  
  19.         return dStr;  
  20.     }