我如何从c#中的字符串中获取位?

时间:2009-03-17 20:09:27

标签: c#

如果我有以下字符串“Blue Box”,我怎么能得到构成c#中字符串的位以及我将它存储在什么数据类型中。

如果我只做字母“o”,我得到111作为字节,111作为比特。是斩掉0,如果我做“oo”,我在字节数组中每个o得到111,但对于这些位,我得到的值是28527.为什么?

3 个答案:

答案 0 :(得分:15)

如果你想要字符串格式的位,你可以使用这个函数:

public string GetBits(string input)
{
    StringBuilder sb = new StringBuilder();
    foreach (byte b in Encoding.Unicode.GetBytes(input))
    {
        sb.Append(Convert.ToString(b, 2));
    }
    return sb.ToString();
}

如果你使用“蓝盒子”的例子,你会得到:

string bitString = GetBits("Blue Box");
// bitString == "100001001101100011101010110010101000000100001001101111011110000"

答案 1 :(得分:14)

您可以执行以下操作:

byte[] bytes = System.Text.UTF8Encoding.Default.GetBytes("Blue Box");
BitArray bits = new System.Collections.BitArray(bytes);

答案 2 :(得分:5)

这取决于你所说的“位”。你在谈论ASCII表示吗? UTF8? UTF-16? System.Text.Encoding命名空间应该让你入门。