如果我有以下字符串“Blue Box”,在c#中如何获取组成该字符串的位,并以什么数据类型存储它。
如果我只写字母“o”,我得到111作为字节和111作为位数。它是在截断0,如果我写“oo”,我在字节数组中得到每个o的111,但对于位数,我得到值28527。为什么?
如果我只写字母“o”,我得到111作为字节和111作为位数。它是在截断0,如果我写“oo”,我在字节数组中得到每个o的111,但对于位数,我得到值28527。为什么?
如果你想将位以字符串格式表示,可以使用这个函数:
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"
你可以执行以下操作:
byte[] bytes = System.Text.UTF8Encoding.Default.GetBytes("Blue Box");
BitArray bits = new System.Collections.BitArray(bytes);
这取决于你所说的“bits”的含义。你是指ASCII表示法吗?UTF8?UTF16?System.Text.Encoding命名空间可以让你开始。