2016-09-21 123 views
-2

我有两个字节的数组像这样:如何从c#中的两个字节数组中提取或获取位,并将其存储在每个提取的位的单独变量中?

byte[] buffer; 

创建字节[]称为缓冲

buffer[2]; 

缓冲器2字节

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

直到现在我已经这样做了。

var extractbits= buffer[2]; 
Bitarray extractedBits_ = new bitarray(extractbits);              
var bit_0 = extractedBits_ [0];         
var bit_1=extractedBits_ [1]; 

等等... ,但我没能得到info..it显示布尔全是假的,即使在它们中值字节。

缓冲区[2]中的值是255; 是否有任何其他方式做到这一点

+0

1)C和C#**很大的不同**语言。使用正确的语言标签,不要使用垃圾邮件标签! 2)参见[问],提供[mcve] 3)并说明你的具体**问题。这个问题已经被多次询问和回答。如果不是现成的解决方案,那么需要的步骤。 – Olaf

+0

这段代码的一半甚至不是有效的c#。请显示您编译和测试的实际代码 - 我们无法调试破碎的虚假代码。 –

+1

你们对第一个计时器是粗鲁的 –

回答

0

你可以像这样适当的构造函数初始化您extractedBits_:

 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 
相关问题