1 | C#中 二进制与字符串 |
01 | /// <summary> |
02 | /// 将 字符串 转成 二进制 “10011100000000011100011111111101” |
03 | /// </summary> |
04 | /// <param name="s"></param> |
05 | /// <returns></returns> |
06 | public static string Encode( string s) |
07 | { |
08 | byte [] data = Encoding.Unicode.GetBytes(s); |
09 | StringBuilder result = new StringBuilder(data.Length * 8); |
10 |
11 | foreach ( byte b in data) |
12 | { |
13 | result.Append(Convert.ToString(b, 2).PadLeft(8, '0' )); |
14 | } |
15 | return result.ToString(); |
16 | } |
17 | /// <summary> |
18 | /// 将二进制 “10011100000000011100011111111101” 转成 字符串 |
19 | /// </summary> |
20 | /// <param name="s"></param> |
21 | /// <returns></returns> |
22 | public static string Decode( string s) |
23 | { |
24 | System.Text.RegularExpressions.CaptureCollection cs = |
25 | System.Text.RegularExpressions.Regex.Match(s, @"([01]{8})+" ).Groups[1].Captures; |
26 | byte [] data = new byte [cs.Count]; |
27 | for ( int i = 0; i < cs.Count; i++) |
28 | { |
29 | data[i] = Convert.ToByte(cs[i].Value, 2); |
30 | } |
31 | return Encoding.Unicode.GetString(data, 0, data.Length); |
32 | } |