【发布时间】:2020-03-18 14:46:09
【问题描述】:
我正在开发一个 C# 应用程序。我有一个字节变量,我想遍历它的所有位。
byte var = 3;
System.Collections.BitArray bits = new System.Collections.BitArray(var);
Console.WriteLine("Length of collection : " + bits.Length);
for (int i = 0; i < bits.Length; i++)
{
Console.WriteLine(bits[i]);
}
这段代码给了我以下输出:
Length of collection : 3
False
False
False
但由于 3 的二进制表示是 00000011,所以我希望得到以下输出
False
False
False
False
False
False
True
True
我做错了什么?我怎样才能达到所需的输出
【问题讨论】:
-
你只初始化了长度为3的
BitArray...你应该使用BitArray(byte[])构造函数 -
那我该怎么办? @BiesiGrr
-
您正在使用的 BitArray 构造函数的方法签名是
BitArray(int length)。因此,当您想说“我想要一个新的 BitArray,它是整数 3 的位”时,您是在说“我想要一个长度为 3 的新 BitArray”。非常不一样。您首先需要获取字节并将其放入。