Преобразование байта 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;
}