Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 迭代C中字节的所有位#_C#_Binary_Byte - Fatal编程技术网

C# 迭代C中字节的所有位#

C# 迭代C中字节的所有位#,c#,binary,byte,C#,Binary,Byte,我正在处理一个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[

我正在处理一个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]);
}
但由于3的二进制表示形式是00000011,因此我希望得到以下输出

False
False
False
False
False
False
True
True
我做错了什么?如何实现所需的输出

您正在调用构造函数:

初始化BitArray类的新实例,该实例可以保存指定数量的位值,这些值最初设置为false

因此,您正在创建长度为3的
位数组
,而不是包含整数值3中的位的
位数组

您需要构造函数:

初始化包含从指定字节数组复制的位值的BitArray类的新实例


您只需初始化长度为3的
位数组
。。。您应该使用
BitArray(byte[])
constructor我该怎么做@biesigrr您正在使用的BitArray构造函数的方法签名是
BitArray(int-length)
。当你想说“我想要一个新的位数组,它是整数3的位”时,你说的是“我想要一个长度为3的新位数组”。非常不同。您首先需要获取字节并将其放入。谢谢@canton7,它成功了。还有一件事,为什么我一开始就变为现实?应该是在最后吗?由于二进制表示为“00000011”@WaleedNaveed,因为它从最低有效位而不是最高有效位进行索引
False
False
False
False
False
False
True
True
byte var = 3;
BitArray bits = new BitArray(new byte[] { var });
Console.WriteLine("Length of collection : " + bits.Length);
for (int i = 0; i < bits.Length; i++)
{
    Console.WriteLine(bits[i]);
}
Length of collection : 8
True
True
False
False
False
False
False
False