Подтвердить что ты не робот

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

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

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

4b9b3361

Ответ 1

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

var bits = new BitArray(arrayOfBytes);

Вы можете вызвать его с помощью new BitArray(new byte[] { yourBite }), чтобы создать массив из одного байта.

Ответ 2

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

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

Примечание: вам нужна ссылка на System.Linq

Ответ 3

Решение простое, всего две инструкции (которые помечены следующим кодом), просто преобразуйте байт в двоичный код с помощью Convert.ToString(btindx,2), ноль заполнить результирующую строку до 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;
    }