Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.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
Arrays 如何从c#中的双字节数组中提取或获取位,并将其存储在单独的变量中,以获得每个提取的位?_Arrays_Bitwise Operators_Bit - Fatal编程技术网

Arrays 如何从c#中的双字节数组中提取或获取位,并将其存储在单独的变量中,以获得每个提取的位?

Arrays 如何从c#中的双字节数组中提取或获取位,并将其存储在单独的变量中,以获得每个提取的位?,arrays,bitwise-operators,bit,Arrays,Bitwise Operators,Bit,我有一个两字节数组,如下所示: byte[] arr = new byte[2]; arr[0] = 255; arr[1] = 255; var extractedBits_= new BitArray(arr); var length = arr.Length * 8; for(int i = 0; i < length; i++) { Consol

我有一个两字节数组,如下所示:

        byte[] arr = new byte[2];
        arr[0] = 255;
        arr[1] = 255;

        var extractedBits_= new BitArray(arr);
        var length = arr.Length * 8;
        for(int i = 0; i < length; i++)
        {
            Console.WriteLine(extractedBits_[i]);
        }
        //True
        //True
        //True
        //True
        //True
        //True
        //True
        //False
        //True
        //True
        //True
        //True
        //True
        //True
        //True
        //True

创建名为buffer的字节[]

buffer[2];
var extractbits= buffer[2];
Bitarray extractedBits_ = new bitarray(extractbits);                                     
var bit_0 = extractedBits_ [0];                     
var bit_1=extractedBits_ [1];
2字节缓冲区

现在我想从2字节中提取每一位,比如0到15个数据位,这样我就可以将它们存储在一个单独的变量中

到现在为止,我已经做到了

buffer[2];
var extractbits= buffer[2];
Bitarray extractedBits_ = new bitarray(extractbits);                                     
var bit_0 = extractedBits_ [0];                     
var bit_1=extractedBits_ [1];
等等。。。 但是我没能得到信息。它在bool中显示所有false,尽管它们的字节中有值

缓冲区[2]中的值为255; 还有别的办法吗


您可以使用适当的构造函数初始化提取的位,如下所示:

        byte[] arr = new byte[2];
        arr[0] = 255;
        arr[1] = 255;

        var extractedBits_= new BitArray(arr);
        var length = arr.Length * 8;
        for(int i = 0; i < length; i++)
        {
            Console.WriteLine(extractedBits_[i]);
        }
        //True
        //True
        //True
        //True
        //True
        //True
        //True
        //False
        //True
        //True
        //True
        //True
        //True
        //True
        //True
        //True
byte[]arr=新字节[2];
arr[0]=255;
arr[1]=255;
var-extractedBits=新位数组(arr);
变量长度=阵列长度*8;
for(int i=0;i
1)C和C是非常不同的语言。使用正确的语言标签,不要垃圾邮件标签!2) 请参阅,提供答案3)并说明您的具体问题。这个问题已经被多次询问和回答。如果不是现成的解决方案,那么所需的步骤。此代码的一半甚至不是有效的c#。请展示您编译和测试的实际代码-我们不能调试虚假代码的碎片。你们这些家伙对初来乍到的人很粗鲁