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

Xai*_*oft 6 c#

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

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

Joh*_*sch 16

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

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();
}
Run Code Online (Sandbox Code Playgroud)

如果您使用"Blue Box"示例,则会得到:

string bitString = GetBits("Blue Box");
// bitString == "100001001101100011101010110010101000000100001001101111011110000"
Run Code Online (Sandbox Code Playgroud)


Sco*_*ein 15

您可以执行以下操作:

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


Jim*_* H. 5

这取决于你所说的"位".你在谈论ASCII表示吗?UTF8?UTF-16?System.Text.Encoding命名空间应该可以帮助您入门.