2016-09-21 1 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 показывает всю ложь в BOOL, несмотря на то что значение в них байты.

значение в буфере [2] составляет 255; есть ли другой способ сделать это

+0

1) C и C# являются ** очень разные ** языки. Используйте правильный тег языка и не спам-теги! 2) См. [Ask], укажите [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