Преобразование байта C# в BitArray

есть ли стандартные функции для преобразования byte на BitArray?

одним из способов было бы проверить каждый бит byte значение, а затем выполнить побитовое операции. Мне было интересно, есть ли какой-либо способ, который более прост, чем это.

3 ответов


Да, используя соответствующие BitArray() конструктор как рассказали здесь:

var bits = new BitArray(arrayOfBytes);

вы можете назвать его с new BitArray(new byte[] { yourBite }) для создания массива в один байт.


если у вас есть номер байта или даже целое число, и т. д.

BitArray myBA = new BitArray(BitConverter.GetBytes(myNumber).ToArray());

Примечание: вам нужна ссылка на систему.В LINQ


решение простое, всего две инструкции (которые отмечены в следующем коде), просто преобразуйте байт в двоичный, используя Convert.ToString(btindx,2), zero pad результирующая строка до 8 бит (или длины 8),strBin.PadLeft(8,'0'); и объединить все двоичные строки, чтобы сформировать битовый поток вашего массива байтов, если хотите, вы также можете сформировать массив строк для разделения двоичного представления каждого байта.

    byte[] bt = new byte[2] {1,2};

    string strBin =string.Empty;
    byte btindx = 0;
    string strAllbin = string.Empty;

    for (int i = 0; i < bt.Length; i++)
    {
        btindx = bt[i];

        strBin = Convert.ToString(btindx,2); // Convert from Byte to Bin
        strBin = strBin.PadLeft(8,'0');  // Zero Pad

        strAllbin += strBin;
    }