Преобразовать массив байтов в битовый массив?

Как я пошел бы о преобразовании bytearray, чтобы немного выстроить?

28
задан cam 30 March 2010 в 19:20
поделиться

2 ответа

Очевидный способ; с использованием конструктора, который принимает массив байтов:

BitArray bits = new BitArray(arrayOfBytes);
48
ответ дан 28 November 2019 в 02:49
поделиться

Это зависит от того, что вы подразумеваете под «битовым массивом». .. Если вы имеете в виду экземпляр класса BitArray , ответ Гуффа должен работать нормально.

Если вам действительно нужен массив битов, например, в форме bool [] , вы можете сделать что-то вроде этого:

byte[] bytes = ...
bool[] bits = bytes.SelectMany(GetBits).ToArray();

...

IEnumerable<bool> GetBits(byte b)
{
    for(int i = 0; i < 8; i++)
    {
        yield return (b & 0x80) != 0;
        b *= 2;
    }
}
15
ответ дан 28 November 2019 в 02:49
поделиться
Другие вопросы по тегам:

Похожие вопросы: