如果我有以下字符串“Blue Box”,我怎么能得到构成c#中字符串的位以及我将它存储在什么数据类型中。
如果我只做字母“o”,我得到111作为字节,111作为比特。是斩掉0,如果我做“oo”,我在字节数组中每个o得到111,但对于这些位,我得到的值是28527.为什么?
答案 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命名空间应该让你入门。