Ответ 1
Да, используя BitArray()
конструктор, как описано здесь:
var bits = new BitArray(arrayOfBytes);
Вы можете вызвать его с помощью new BitArray(new byte[] { yourBite })
, чтобы создать массив из одного байта.
Есть ли какая-либо предопределенная функция для преобразования byte
в BitArray
?
Один из способов - проверить каждый бит значения byte
, а затем выполнить операцию побитовое. Мне было интересно, есть ли какой-нибудь путь, который более прямолинейный, чем это.
Да, используя BitArray()
конструктор, как описано здесь:
var bits = new BitArray(arrayOfBytes);
Вы можете вызвать его с помощью new BitArray(new byte[] { yourBite })
, чтобы создать массив из одного байта.
если у вас есть число байтов или даже целое число и т.д.
BitArray myBA = new BitArray(BitConverter.GetBytes(myNumber).ToArray());
Примечание: вам нужна ссылка на System.Linq
Решение простое, всего две инструкции (которые помечены следующим кодом), просто преобразуйте байт в двоичный код с помощью 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;
}