Я разрабатываю приложение, которое будет отправлять данные за RTP
, но я почти никогда не работал с байтами. Сейчас я пытаюсь использовать BitArray
:C# - Как мне создать байт из бит?
byte[] toSend = new byte[12];
BitArray b = new BitArray(new int[] { 2 });
b.CopyTo(toSend, 0);
но он работает с Int32
, так 2 представлена как 0100..0
, и это не то, что мне нужно. У меня 2 вопроса:
Как я должен объединить
2|1|1|4
бит в один байт? Я думаю, что должно быть что-то, что выглядит следующим образом:int version = 2;//2 bits int padding = 0;//1 bit int extension = 0;//1 bit int ccrc = 0;//4 bits byte[] toSend = new byte[1]{version+padding+extension+ccrc};
Для некоторых заголовков есть 16 бит защищены, так что мне нужно что-то вроде этого :
0000000000000000(16)
, но я не знаю, как создать такой переменной , и как записать 16 бит в два байта.
Не забудьте проверить для байтов/добавить исключение, если система имеет неверный порядок байтов! – gismo